タッチすると別のアイテムのリストが開くアイテムのリストを作成しようとしています。アイテムのサブメニューのようなものです。これは、最初のリストが長くなりすぎて、いくつかをサブ メニューにグループ化したいためです。
gridView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, final int position, long id) {
final CharSequence[] items = {"Gallery Image Menu", "View pattern", "Delete pattern", "Locate pattern in list view", "Row Counter (with pattern)", "Share Pattern", "Share Image", "Cancel"};
AlertDialog.Builder builder = new AlertDialog.Builder(grid.this);
builder.setTitle(selectedimage);
builder.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
if (item == 0){
//first menu 1st item
dialog.dismiss();
final CharSequence[] items2 = {"Rotate image 180"+"\u00B0", "Rotate image 90"+"\u00B0", "Add image from pattern", "Add image from file", "Add image from camera", "Remove image", "Cancel"};
final AlertDialog.Builder builder2 = new AlertDialog.Builder(grid.this);
builder2.setTitle(selectedimage);
builder2.setItems(items2, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog2, int item) {
if(item == 0){
//2nd menu, 1st item
dialog2.dismiss();
//do something
return;
}
if(item == 1){
dialog2.dismiss();
//2nd menu, 2nd item
//do something else
return;
}
AlertDialog alert2 = builder2.create();
alert2.show();
}
});
}
if (item == 1){
//first menu 2nd item
}
if(item == 2){
//1st menu, 3rd item
}
if(item == 3){
}
//..... etc
}
});
AlertDialog alert = builder.create();
alert.show();
}
});//gridView.setOnItemClickListener
最初のビルダーは期待どおりに表示されますが、2 番目のビルダーを開く最初のオプションを選択すると、最初のビルダーが閉じてアクティビティに戻ります。
デバッグ モードでは、2 番目のビルダー コードが表示されるかのように読み取られますが、両方とも閉じます。
おそらくあなたはこれを行うことができませんか?
何か案は?