私はここで迷っています。ディレクトリ内のファイルを読み取り、アプリの起動時にそれらからボタンを作成する必要があります。while ループを使用する必要があり、UI を更新する必要があります。ランナブルを実行し、ループ内のコードのみを UI スレッドで実行することをかなり長い間試みました。私はAndroidに比較的慣れていませんが、これは十分に簡単に思えました。
このコードは私が今持っているものです。エラーや警告はスローされませんが、何もしません。「ボタンを追加」ボタンがボタンを正しく作成するため、ボタン作成コードが機能することはわかっています。なぜ機能しないのかわかりません。(これは OnCreate で実行されます)
Runnable aRunnable = new Runnable() {
public void run() {
Looper.prepare();
File f = new File(Environment.getExternalStorageDirectory() + "/myapp/");
File[] filearray = f.listFiles();
int amount = filearray.length;
final String[] files = new String[amount];
int count = 0;
while (count != amount) {
files[count] = filearray[count].toString();
count += 1;
}
int times = files.length;
int counter = 0;
while (counter != times) {
Handler handler = new Handler();
handler.post(new Runnable() {
public void run() {
// Button making code
}
});
}
Looper.loop();
}
};
Thread thread = new Thread(aRunnable);
thread.start();