界面不起作用

时间:2014-07-08 12:55:29

标签: java android interface

我使用了一个接口将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);
            }
        };
    }
}

2 个答案:

答案 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();