java - 将基于 android Activity 的应用程序转换为基于 fragment 的应用程序时导致的错误

标签 java android android-intent

我是 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 的方式进行两项进一步更改

  1. 在 list_view.xml 中,您识别 Android ListView 的方式是:

    android:id="@+id/android:list"

  2. 在 ContactListFragment.java 中,然后以这种方式调用 ListView:

    parent.myListView = (ListView)v.findViewById(android.R.id.list);

关于java - 将基于 android Activity 的应用程序转换为基于 fragment 的应用程序时导致的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15510318/

相关文章:

java - 我想将测试输出文件夹从项目移动到其他目录,我应该将移动文件夹代码放在设置或拆卸的位置吗?

java - Android Intent bundle 总是空的?

java - 使用@RestService 时的类加载异常 - dalvik.system.BaseDexClassLoader.findClass 处的 java.lang.ClassNotFoundException (...)

android - 如何使用 XmlPullParser 解析 RSS 提要?

android - Activity 弹出而不是在堆栈上添加一个新的

android - 如何将 EditText 设置为仅输入十六进制数字?

Java - java.lang.ArrayIndexOutOfBoundsException

android - Android 上的消息应用程序 (mms)

Intent 不为空时的 Android "Failure delivering result ResultInfo"

java - 运行 hibernate 5.0.1 程序时出现未知实体异常