При нажатии элемента в моем ListView у меня появляется несколько вариантов в диалоговом окне, чтобы пользователь мог выбрать. Однако существуют различные сценарии, в которых я хотел бы отключить один или несколько параметров, чтобы пользователь не мог их выбрать. Вот некоторый код.
public class MyApp extends ListActivity implements OnItemClickListener, OnItemLongClickListener {
private static final int HOW_MANY = 4;
private static final int ADD = 0;
private static final int EDIT = 1;
private static final int OPEN = 2;
private static final int DELETE = 3;
private String[] myItemClickDialog = null;
...
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.mylayout);
this.myItemClickDialog = new String[HOW_MANY];
this.myItemClickDialog[ADD] = "Add";
this.myItemClickDialog[EDIT] = "Edit";
this.myItemClickDialog[OPEN] = "Open";
this.myItemClickDialog[DELETE] = "Delete";
}
@Override
public final boolean onItemLongClick(final AdapterView<?> parent,
final View view, final int position, final long id) {
final Context context = this;
Builder builder = new Builder(context);
builder.setTitle("Options");
String[] items = this.myItemClickDialog;
builder.setItems(items, new DialogInterface.OnClickListener() {
@Override
public void onClick(final DialogInterface dialog, final int which) {
switch (which) {
case ADD:
//Do stuff
break;
case EDIT:
//Do stuff
break;
case OPEN:
//Do stuff
break;
case DELETE:
//Do stuff
break;
}
}
// Rest of code here
Я бы хотел иметь возможность отключить (затемняя) конкретную опцию, например опцию DELETE или опцию OPEN, в зависимости от того, какой элемент списка был нажат (я покрыл эту часть, то есть часть обнаружения).