-1

[已解决]
好的,这真的很奇怪。我用我的模拟器运行程序,当我启动模拟器并使用 Run as -> Android 应用程序时,一切正常。

如果我尝试,直接使用 Run as -> Android application 启动程序并启动模拟器,在 sdcard.img 上找不到我的 XML 文件,这就是我得到 NullPointerException 的原因,因为 XML Parser 没有'不要创建任何导致这种情况的对象。也许是一个错误?模拟器总是启动相同的 sdcard 映像。

我正在解析一个 XML 文件,该文件可能会有很大的不同。所以我尝试创建一个RelativeView,我可以根据XML 文件内容在其中添加按钮等。

所以我创建了一个 button.xml

<?xml version="1.0" encoding="UTF-8"?>
<Button xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="10dp"
android:textSize="25sp" />

现在我尝试了这样的事情(我在这里只使用伪代码):

   int i = 0;
for(File file : fileArray){
   Button b[i] = (Button)findViewById(R.layout.button);
   b[i].setText(file.getTitel);
   i++;
}

问题是,现在我得到一个 NullPointerException!只有在第一个 Button 被实例化之后。当我的 fileArray 仅包含一个 Object 时,此方法有效。这可能听起来很愚蠢,但有没有像我打算的那样简单的方法,或者我必须用一个新文件创建一个多按钮布局.xml,将所有内容粘贴在那里,例如使用 BufferedOutputStream,保存所有把Buttons 0..n等放在里面然后给它充气?

4

2 回答 2

1

尝试这个

 int i = 0;
for(File file : fileArray){
   Button b[i] = (Button) View.inflate(this, R.layout.button, null);
   b[i].setText(file.getTitel);
   i++;
}
于 2013-03-20T21:28:30.253 回答
0

有一个简单的错误。移出循环int i = 0;for()

于 2013-03-20T21:28:13.803 回答