簡體   English   中英

線程asynctask和listview

[英]thread asynctask and listview

嗨,大家好,我的代碼有問題...我已將myTask移至Splashscreen.java ..這是arrivi.java

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
       View arrivi = inflater.inflate(R.layout.arrivi, container, false); 


       return arrivi;
    }

    public void CheckRow(){

        ListView list;
        rowItems = new ArrayList<RowItem>();
        for (int i = 1; i <= thread; i++) {

            RowItem item = new RowItem(Compagnia[i], CodiceVolo[i], Citta[i],OraPrevista[i],  OraStimata[i], StatoVolo[i]);
            rowItems.add(item);
            System.out.println(CodiceVolo[i]);
        } 
        list=(ListView)arrivi.findViewById(R.id.listView1);
        CustomBaseAdapter adapter = new CustomBaseAdapter(getActivity(), rowItems);
        list.setAdapter(adapter);

103行是

  list=(ListView)getActivity().findViewById(R.id.listView1);

SplashScreen.java

public class SplashScreen extends Activity {

    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
                                WindowManager.LayoutParams.FLAG_FULLSCREEN);

        setContentView(R.layout.splashscreen);

而不是使用getActivity(),應該從Fragment.getView()獲取布局。

更新

因此,您將在Activity的onCreate中啟動AsyncTask。 可以在調用您的Fragment的onCreateView之前調用AsyncTask的onPostExecute,這是我懷疑在這里發生的情況; 因此為空指針。 通常,這些是使用AsyncTasks的一些細微差別。

您有幾種選擇:

  1. 使用加載程序以支持AsyncTasks
  2. 從您的片段啟動AsyncTask,這將確保片段被附加並處於活動狀態。
  3. 在CheckRow中,在執行工作之前,請確保您處於“活動片段”狀態。
  4. 使用保留的片段執行后台處理

查看鏈接以獲取更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM