Java 如何在antoher类的onCreate中更新适配器?

Java 如何在antoher类的onCreate中更新适配器?,java,android,android-asynctask,android-arrayadapter,Java,Android,Android Asynctask,Android Arrayadapter,所以我在onCreate方法中有一个DataAdapter,我想从另一个类更新它 main_spinList = (Spinner) findViewById(R.id.main_spinList); ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,list); dataAdapter.setDrop

所以我在onCreate方法中有一个DataAdapter,我想从另一个类更新它

main_spinList = (Spinner) findViewById(R.id.main_spinList);
    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,list);
    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    main_spinList.setAdapter(dataAdapter);
    //=========================================Spinner==================
    main_spinList.setOnItemSelectedListener(new OnItemSelectedListener() {
        public void onItemSelected(AdapterView<?> arg0, View arg1,
                int arg2, long arg3) {
            filepath = String.valueOf(main_spinList.getSelectedItem());
        }
        public void onNothingSelected(AdapterView<?> arg0) {
            Log.e("klkl", "klkl");
        }
    }); 
main\u微调列表=(微调器)findViewById(R.id.main\u微调列表);
ArrayAdapter dataAdapter=新的ArrayAdapter(这是android.R.layout.simple\u微调器\u项,列表);
dataAdapter.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉项);
main_spinList.setAdapter(dataAdapter);
//===================================================================旋转器==================
main_spinList.setOnItemSelectedListener(新的OnItemSelectedListener(){
已选择公共视图(AdapterView arg0、视图arg1、,
整数arg2,长arg3){
filepath=String.valueOf(main_spinList.getSelectedItem());
}
未选择公共无效(AdapterView arg0){
Log.e(“klkl”、“klkl”);
}
}); 
我可以从AsyncTask这样更新,但是如何使用dataAdapter.notifyDataSetChanged()从另一个类更新适配器

     new FtpGet(){
        public void onPostExecute(ArrayList<String> result) {
            list.clear();
             list.addAll(result);
             dataAdapter.notifyDataSetChanged();


     }

    }.execute();
new-FtpGet(){
PostExecute上的公共void(ArrayList结果){
list.clear();
list.addAll(结果);
dataAdapter.notifyDataSetChanged();
}
}.execute();

另一个问题是,API 9设备无法在setOnSelectedItem方法中执行类似上面所述的异步任务,它不会更新微调器。

在实现接口的活动中使用接口,而在另一个类中只触发它。这是用于适配器的notify方法。

我认为您最好查看和,因为在返回到适配器的活动之前,您不需要刷新适配器

onActivityResult()
将允许您从子活动获取状态,并且您可以在返回时从同一活动刷新适配器

在适配器活动中,将以下代码放在启动其他活动的位置:

  Intent i = new Intent(this, ActivityTwo.class);
  startActivityForResult(i, REQUEST_CODE);
并添加此方法:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  if (resultCode == RESULT_OK && requestCode == REQUEST_CODE) {
    if (data.hasExtra("result")) {
      ArrayList<String> result = data.getExtras().getSerializableExtra("result");
      list.addAll(result);
         dataAdapter.notifyDataSetChanged();
    }
  }
} 

你应该每个帖子只有一个问题,为“另一个问题…”发布另一个问题
  Intent data = new Intent();
  data.putExtra("result", result);
  setResult(RESULT_OK, data);
  finish();