[英]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.