我试图有一个项目列表,当被触摸时会打开另一个项目列表。更像是项目的子菜单。这是因为我的第一个列表越来越长,我想将一些组合到一个子菜单中。
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
第一个构建器按预期显示,但是当我选择要打开第二个构建器的第一个选项时,第一个构建器关闭并返回活动。
在调试模式下,第二个构建器代码被读取,就好像它要显示但随后都关闭一样。
也许你不能这样做?
有任何想法吗?