私のアプリには多数の xml レイアウト ファイルがあります。ここで、定義された数、つまり 15 個のそれらがアクティビティに含まれる機能を追加したいと考えています。アクティビティが開始されるたびに、15 のレイアウトがランダムに選択される必要があります。それ、どうやったら出来るの?配列について考えていましたが、xml ファイルを配列 (ランダム) に含める方法についての適切なリファレンスが見つかりませんでした。
質問する
729 次
2 に答える
1
Application.onCreate またはメインの Activity.onCreate() をオーバーライドして、必要なレイアウトのリソース ID を SharedPreference に設定できます。
public static final String LAYOUT_ID = "random.layout.id";
private static int[] LAYOUTS = new int[] { R.layout.default, R.layout.fancy };
public void onCreate() {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
prefs.edit().putInt(LAYOUT_ID, getRandomLayoutId()).commit();
}
private int getRandomLayoutId() {
Random r = new Random(Calendar.getInstance().getTimeInMillis());
return LAYOUTS[r.nextInt(LAYOUTS.length)];
}
この ID は、アプリ内のどこかで setContentView() を使用して使用できます。
private static final int DEFAULT_ID = R.layout.default;
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
setContentView(getInt(MyApplication.LAYOUT_ID, DEFAULT_ID));
メインのアクティビティでこれを行うと、向きの変更や同様のイベントでも新しいレイアウトが適用される場合があります。
于 2013-06-18T12:52:32.173 に答える