【解決済み】
わかりました、これは本当に奇妙です。エミュレーターでプログラムを実行しました。エミュレーターを起動して Run as -> Android アプリケーションを使用すると、すべて正常に動作します。
Run as -> Android application でプログラムを直接起動しようとすると、エミュレーターが起動し、sdcard.img で XML ファイルが見つかりません。これが、XML パーサーがこれにつながるオブジェクトを作成しないでください。多分バグ?エミュレーターは常に同じ SD カード イメージを開始します。
極端に異なる可能性がある XML ファイルを解析しています。そこで、XML ファイルの内容に応じてボタンなどを追加できる RelativeView を作成しようとしました。
だから私は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にオブジェクトが1つしか含まれていない場合、これは機能します。これはばかげているように聞こえるかもしれませんが、私が意図したように簡単に行う方法はありますか、それとも新しいファイルで multiple-button-layout.xml を作成し、そこにすべてを貼り付けて、たとえば BufferedOutputStream を使用してすべてを保存する必要がありますかその中のボタン0..nなどを膨らませますか?