我使用了一个接口将ArrayList从一个类获取到另一个类。但是当我在其他类中调用接口时,我没有得到ArrayList的值。
接口
public interface GetArrayList {
public void getArray(List<SearchModel> listValues);
}
我正在设置arrayList的类
getArrayList = new GetArrayList() {
@Override
public void getArray(List<SearchModel> listValues) {
listValues = values;
}
};
JSONArray tableArray = NewDataSet.getJSONArray("Table");
for (int i = 0; i < tableArray.length(); i++) {
JSONObject table = tableArray.getJSONObject(i);
data = new SearchModel(/*Constructor irrelevant to question*/);
values.add(data);
}
getArrayList.getArray(values);
我希望使用arraylist的第二类
public class SearchJobList extends ListFragment {
private View view;
private List<SearchModel> data;
private GetArrayList getArrayList;
SearchJobAdapter jobAdapter;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
view = inflater.inflate(R.layout.search_job_list, null, false);
return view;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
data = new ArrayList<SearchModel>();
getArrayList = new GetArrayList() {
@Override
public void getArray(List<SearchModel> listValues) {
data = listValues;
jobAdapter = new SearchJobAdapter(getActivity(), data);
setListAdapter(jobAdapter);
}
};
}
}
答案 0 :(得分:0)
尝试从mainActivity设置静态List变量 并尝试从OtherActivity中访问它......
答案 1 :(得分:0)
使用“应用程序”类。除了存储全局对象/数据的正确位置之外,还有更多工作要做。
每个活动都可以通过调用.getApplication()来访问它,只需将其强制转换为继承的类。
在AndroidManifest中,通过属性“android:name”扩展“application”标签,该属性指定您自己的应用程序类(扩展应用程序)。
<application android:label="@string/app_name" android:icon="@drawable/ic_launcher"
android:name="com.example.my.great.package.MyApplication"
....
班级:
class MyApplication extends android.app.Application {
....
在活动中使用:
((MyApplication)getApplication()).getMyList();