我正在尝试使用 Web 服务通过 AsyncTask 获取数据。 我不知道为什么当我声明全局变量“arrayList1”并且它已经初始化时,但我收到“arrayList1”错误并且它跳过了新的 AsyncTask 中的操作。
private Context mContext;
private ArrayList arrayList1;
private ArrayList<List> mData;
private ListView mListView;
private ListViewAdapter mAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mContext = getApplicationContext();
mListView = (ListView)findViewById(R.id.listView1);
mData = new ArrayList<List>();
mData = LoadListView();
}
public ArrayList<List> LoadListView(Void...params) {
arrayList1 = new ArrayList();
//here error occurred.
new AsyncTask<Void, Void, ArrayList<List>>() {
@Override
protected ArrayList<List> doInBackground(Void...params) {
arrayList1 = GetData();
//GetData() is another function will return a arraylist from web service.
return arrayList1;
}
@Override
protected void onPostExecute(ArrayList<List> arrayList) {
mAdapter = new ListViewAdapter(arrayList, mContext);
mAdapter.notifyDataSetChanged();
mListView.setAdapter(mAdapter);
}
}.execute((Void[]) params); //error occurred skipped directly to here.
return arrayList1;
}
最佳答案
如果您使用 proGuard,请务必检查 gradle 中的 minifyEnabled 和 ShrinkResources 以找到解决方案
关于java - android:没有这样的实例字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43142755/