簡體   English   中英

Java,試圖將字符串數組從一個類傳遞到另一個類

[英]Java, trying to pass string array from one class to another

我正在android studio中創建一個android應用程序,我需要將字符串數組從一個類傳遞到另一個類。 看來這似乎行不通,而且我找不到真正的錯誤。 我試圖用構造函數做到這一點。

我將省略不必要的代碼。

class MyFragment extends Fragment{


   //I create a string array to pass on the other class

    public String likeTitles[] ={"mazda","whynot","OHYEAAAaa","ok","1983198312893"};


    public MainFragment(String s1[]){

            s1= likeTitles;
        }
}


public class List extends ListActivity{

    String myStringArr[]=new String[5];

    MainFragment myFrag = new MainFragment(myStringArr);

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(getListView().getContext(), android.R.layout.simple_list_item_1, myStingArr);
            getListView().setAdapter(adapter);
    }

我試圖從類中使用一個字符串數組,它在我的適配器上工作正常,但這不起作用。

您應該使用靜態初始化程序將數據傳遞給Fragment

class MyFragment extends Fragment {
    public static MyFragment newInstance(String[] array) {
        MyFragment fragment = new MyFragment();
        Bundle bundle = new Bundle();
        bundle.putStringArray("yourArray", array);
        fragment.setArguments(bundle);
        return fragment;
    }
}

這是您應如何從Activity調用它:

public class List extends ListActivity {
    ... onCreate(...) {
        String myStringArr[]=new String[5];

        MyFragment myFrag = MyFragment.newInstance(myStringArr);

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(getListView().getContext(), android.R.layout.simple_list_item_1, myStingArr);
        getListView().setAdapter(adapter);
    }
}

除了其他答案,如果要將數據從Fragment的“ likeTitles”變量傳遞給構造函數方法中Activity的myStringArr變量,則必須這樣做:

class MyFragment extends Fragment{
    public String likeTitles[]  = {"mazda","whynot","OHYEAAAaa","ok","1983198312893"};   
    public MainFragment(String[] s1){   
        for(int i = 0; i < likeTitles.length; i++)
                s1[i] = likeTitles[i];
    }
}

用靜態String數組變量創建一個類

public class storeData{        
    public static String stringArray[];
}

然后從其他類訪問它以進行設置或獲取

String likeTitles[] ={"mazda","whynot","OHYEAAAaa","ok","1983198312893"};

storeData.stringArray = likeTitles; // to set array

likeTitles = storeData.stringArray // to get array

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM