我是 Android 开发的新手,我有一个简单的列表应用程序,我被要求创建它。我没有遇到过基于 Activity 的应用程序的问题,但是我必须扩展功能并使用 fragment 来实现“通用”应用程序。我的主要 Activity 是:
最佳答案
通过执行以下步骤,我能够成功编译您的代码:
看起来这一行是问题所在(在 Main.java 内部):
contactCursor = contactDBAdapter.getAllContactsCursor();
我查看了您的 contactDBAdapter
是如何初始化的,结果是您在为您的 Activity setContentView
之后初始化了它。但是,您的 View 涉及对 contactDBAdapter
的调用。因此,在 Main.java 中,您需要将以下两行移动到 onCreate 窗口的顶部:
public void onCreate(Bundle savedInstanceState)
{
contactDBAdapter = new ContactDBAdapter(this);
contactDBAdapter.open();
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
....
}
此外,Main.java 中的以下行需要删除(或注释掉):
contact.clear();
此外,我还必须对您调用 ListView 的方式进行两项进一步更改
在 list_view.xml 中,您识别 Android ListView 的方式是:
android:id="@+id/android:list"
在 ContactListFragment.java 中,然后以这种方式调用 ListView:
parent.myListView = (ListView)v.findViewById(android.R.id.list);
关于java - 将基于 android Activity 的应用程序转换为基于 fragment 的应用程序时导致的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15510318/