,我有一個FrameLayout
main_activity和Fragment
通話的AsyncTask從我的應用程序的活動
public class Fragment1 extends Fragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment1, container, false);
return view;
}
public class StartAsyncTask extends AsyncTask<Void,Void,Void>{
@Override
protected Void doInBackground(Void... voids) {
Log.e("startAsyncTask", "start");
return null;
}
}
}
我需要從MainActivity
致電AsyncTask
, 所以我用:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
android.support.v4.app.FragmentTransaction fragmentTransaction =
getSupportFragmentManager().beginTransaction();
Fragment1 fragment1 = new Fragment1();
fragmentTransaction.replace(R.id.fragment, fragment1).commit();
new Fragment1.StartAsyncTask().execute();
}
但它沒有工作。 new Fragment1.StartAsyncTask().execute();
與(不包括類)錯誤。
我不明白你爲什麼要打電話片段的異步任務,但你的問題是這是一個內部類。您可以將其更改爲'public static class StartAsyncTask extends AsyncTask ...',或者使用靜態工廠方法。 –
從片段內部調用'AsyncTask'是唯一可能的方式,覆蓋'onViewCreated'並實例化你的'AsnycTask' –
@YoniGross我將在MainActivity工具欄中使用一個searchview,所以我需要刷新AsyncTask以獲得listview結果,我希望我解釋得很好 –