私の Android アプリの開始時に、ユーザーは選択肢のリストから選択する必要があります。これが理由です。
アイテムの長いリストがあり、各アイテムが正確に 1 つのカテゴリに属しているとします。各ユーザーは、1 つの特定のカテゴリにのみ関心があります。したがって、アプリが開始され、SharedPreferences に選択したカテゴリに関する情報が含まれていない場合、モーダル ダイアログが表示されます。ここで、ユーザーは関心のあるカテゴリを選択する必要があります。カテゴリを選択すると、そのカテゴリのアイテムのみが表示されます。
これまでのところ、アクティビティの onCreate() メソッドでこの動作を実装しようとしましたが、明らかに機能しません。ダイアログが表示されないか、少なくとも表示できるほど長くありません。
正直なところ、 から呼び出してコードが機能するとは思っていませんでしたonCreate()
。Activity
ただし、ダイアログをトリガーできる場所で適切なイベント ハンドラーを見つけることができませんでした。
(他のデータが読み込まれる前に) カテゴリを確実に選択するには、このダイアログをどこからトリガーする必要がありますか?
前もって感謝します。
コードは次のとおりです。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
setContentView(R.layout.activity_item_list);
...
ensureCategorySelected();
}
関連するメソッドはどこにありますか
private void ensureCategorySelected() {
String chosenCategory = getCategoryFromSharedPreferences();
if (chosenCategory != null) {
final CharSequence[] items = getCategories();
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Choose category");
builder.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
// handle the selection of the category
}
});
AlertDialog alert = builder.show();
}
}