【问题标题】:getting the activity for my app获取我的应用程序的活动
【发布时间】:2012-01-03 17:50:54
【问题描述】:

我在读取“res”文件夹中的 XML 文件时遇到了一些问题,我认为我已将其范围缩小为我的应用程序“活动”的问题。

我在下面的第 2 行不断收到 NullPointerException

这是我获取活动的代码。有没有更好或更正确的方法来做到这一点?

1. Activity activity = this;

2. Resources res = activity.getResources();

3. XmlResourceParser xpp = res.getXml(R.xml.encounters);

这是课程:

public class XmlParser extends Activity  {


public XmlParser()
    throws XmlPullParserException, IOException
{
    try {
        XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
        factory.setValidating(false);

        Activity activity = this;
        Resources res = activity.getResources();
        XmlResourceParser xpp = res.getXml(R.xml.encounters);

    } catch (Exception e) {
        String stackTrace = Log.getStackTraceString(e);
        Log.e("error", stackTrace);
    }
   }
}

我在“资源 res = activity.getResources();”上遇到错误线... 谢谢!

【问题讨论】:

  • 我以为这只是指应用程序?我觉得我错了?
  • @999cm999 不幸的是,this 指的是代码当前正在其中执行的类的实例。您确实需要发布更多代码让我们弄清楚发生了什么。
  • chris - 好的,我编辑了主要问题——谢谢

标签: android


【解决方案1】:

某事告诉我thisactivity 有问题,这里缺少一些代码。您放在那里的代码不应该生成 NPE,因为this 永远不会为空,如果 2 紧跟 1,activity 不应该为空。 this 可能不是 Activity 的实例,但这会产生编译错误,而不是 NPE。

编辑啊,我想我明白你的问题了。您需要覆盖onCreate(),这个Activity 将由Android 框架实例化。然后,您需要从构造函数中移动所有代码并将其放入 onCreate() 方法中。但是,我认为这表明对应用程序在 Android 中的工作方式有基本的了解。相反,我要做的是在 Eclipse 中创建一个标准的 Android 应用程序。这将为您创建一个基本活动。从那里,从XmlParser 类中删除子类Activity,并将构造函数更改为采用Context 参数。从那里,在您的另一个Activity 中实例化XmlParser,它是由Eclipse 创建的。

综上所述,我认为您应该花一些时间阅读开发人员文档中的应用程序基础知识,以了解您应该如何访问资源等。

编辑 2 有关Activities 的更多信息,请查看this link。另外,请查看this SO post for how to do what you're trying to do

【讨论】:

  • 哇,它飞过我的头顶。我一直在阅读“developer.android.com”的文档。有什么可以帮助解释你上面写的吗? -- 谢谢
【解决方案2】:

如果您在 Activity 类中运行该代码,那么您可以简单地执行以下操作:

Resources res = this.getResources();

XmlResourceParser xpp = res.getXml(R.xml.encounters);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-24
    • 1970-01-01
    • 2013-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-01
    相关资源
    最近更新 更多