Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 接口不工作_Java_Android_Interface - Fatal编程技术网

Java 接口不工作

Java 接口不工作,java,android,interface,Java,Android,Interface,我使用了一个接口来获取从一个类到另一个类的ArrayList,但是当我在另一个类中调用该接口时,我得不到ArrayList的值 接口 public interface GetArrayList { public void getArray(List<SearchModel> listValues); } 类设置arrayList的位置 getArrayList = new GetArrayList() { @Override public void getA

我使用了一个接口来获取从一个类到另一个类的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);
            }
        };
    }
}

尝试从mainActivity设置静态列表变量
并尝试从其他活动访问它

使用应用程序类。这还有一点要做,但却是存储全局对象/数据的正确位置

每个活动都可以通过调用.getApplication来访问它,只需将其强制转换到继承的类即可

在AndroidManifest中,通过属性android:name扩展应用程序标记,该属性指定您自己的应用程序类扩展应用程序

<application android:label="@string/app_name" android:icon="@drawable/ic_launcher"
             android:name="com.example.my.great.package.MyApplication"
....
在活动中使用:

((MyApplication)getApplication()).getMyList();

你为什么不直接使用公共的ArrayList getArrayList?很抱歉,我听不懂你的意思???你是否正在将活动类中getArrayList的引用对象发送给你正在操作的一个类…?我想为列表设置适配器。这样我就可以使用ArrayList,所以这就是我使用过的接口,我知道,但使用静态是很好的编程方式,所以我尝试使用接口
((MyApplication)getApplication()).getMyList();