Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.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
Android 错误:无法使用list.setAdapter(适配器)解析simbol列表_Android_Android Fragments_Oncreate - Fatal编程技术网

Android 错误:无法使用list.setAdapter(适配器)解析simbol列表

Android 错误:无法使用list.setAdapter(适配器)解析simbol列表,android,android-fragments,oncreate,Android,Android Fragments,Oncreate,这是我的代码,它100%工作: @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View inflatedView = inflater.inflate(R.layout.t1, container, false); final ListView list = (ListView) inflatedView.f

这是我的代码,它100%工作:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View inflatedView = inflater.inflate(R.layout.t1, container, false);
    final ListView list = (ListView) inflatedView.findViewById(R.id.list);
    class json extends AsyncTask<String,String, List<MovieModel> > {
        ...
        @Override
        protected void onPostExecute(final List<MovieModel> result) {
            ...
            MainActivity.Adapter adapter = new MainActivity.Adapter(getActivity().getApplicationContext(), R.layout.row, result);
            list.setAdapter(adapter);
            list.setOnItemClickListener
            ...
        }
}
问题是列表,因为我无法从onCreateView中退出,因为如果我这样做,列表就没有定义

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    ....
    new json();
}
class json extends AsyncTask<String,String, List<MovieModel> > {
    ...
    @Override
    protected void onPostExecute(final List<MovieModel> result) {
        ...
        MainActivity.Adapter adapter = new MainActivity.Adapter(getActivity().getApplicationContext(), R.layout.row, result);
        list.setAdapter(adapter);//this is an error now
@覆盖
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
....
新的json();
}
类json扩展异步任务{
...
@凌驾
受保护的void onPostExecute(最终列表结果){
...
MainActivity.Adapter Adapter=新的MainActivity.Adapter(getActivity().getApplicationContext(),R.layout.row,result);
list.setAdapter(adapter);//这是一个错误

现在的错误是“无法解析simbol‘list’”。

快速解决方案是将
list
设置为类变量

public class MainActivty extends Activity {
    private ListView mList;

    private class json extends AsyncTask<String,String, List<MovieModel> > {
        ...
        @Override
        protected void onPostExecute(final List<MovieModel> result) {
        ...
        mList.setAdapter(adapter);
        ...
    }
}
这样,您就可以在
异步任务中保留所有数据处理,并在
活动中保留所有UI处理

public class MainActivty extends Activity {
    private ListView mList;

    private class json extends AsyncTask<String,String, List<MovieModel> > {
        ...
        @Override
        protected void onPostExecute(final List<MovieModel> result) {
        ...
        mList.setAdapter(adapter);
        ...
    }
}
public class MainActivty extends Activity {
    private ListView mList;

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View inflatedView = inflater.inflate(R.layout.t1, container, false);
        mList = (ListView) inflatedView.findViewById(R.id.list);
        ...
    }

    private void updateUI(final List<MovieModel> result> {
        MainActivity.Adapter adapter 
            = new MainActivity.Adapter(getActivity().getApplicationContext(), R.layout.row, result);
        mList.setAdapter(adapter);
        ...
    }

    private class json extends AsyncTask<String,String, List<MovieModel> > {
        ...
        @Override
        protected void onPostExecute(final List<MovieModel> result) {
        ...
        updateUI(result);
        ...
    }
}