java - 线程 asynctask 和 listview

标签 java android multithreading android-asynctask

大家好,我的代码有问题...我已将 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);

最佳答案

您应该从 Fragment.getView() 获取布局,而不是使用 getActivity()。

更新

因此,您将在 Activity 的 onCreate 中启动 AsyncTask。 AsyncTask 的 onPostExecute 可以在 Fragment 的 onCreateView 被调用之前被调用,这就是我怀疑这里发生的情况;因此是空指针。一般来说,这些是使用 AsyncTasks 的一些细微差别。

您有多种选择:

  1. 使用Loaders支持 AsyncTasks
  2. 从 Fragment 启动 AsyncTask,这保证了 Fragment 已附加并处于 Activity 状态。
  3. 在 CheckRow 中,在执行工作之前确保 Fragment 处于 Activity 状态。
  4. 使用保留的 fragment 执行后台处理

结账 this链接以获取更多信息。

关于java - 线程 asynctask 和 listview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23160635/

相关文章:

java - 如何通过在java中使用mysql数据库选择来增加我的主键

java - 如何将 ActionListener 添加到添加到 JPanel 的 JButton?

java - 有没有一种通用的文件访问方式,既适用于 Android 也适用于 PC?

java - 对 "implements Runnable"感到困惑

Java Android 套接字线程

java - 是否可以获取Hashmap中以前的存储值?

JavaFX - 如何从 AnchorPane 中删除特定节点

java - 如果用户是第一次使用,如何显示不同的页面 (Android)

android - 从git推拉后出错

python - 结束循环正在终止线程