我有一个片段,显示一个警告对话框。警告对话框包含几个附加了OnClickListeners的按钮。
单击时,我需要将一些整数传递给OnClickListener。我尝试了以下方法:
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle(getActivity().getString(R.string.aufgabe_loeschen));
builder.setItems(new CharSequence[]
{getActivity().getString(R.string.nur_diese_wiederholung_löschen),
getActivity().getString(R.string.alle_wiederholungen_löschen)},
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getActivity(), "selectedAufgabeId: " + String.valueOf(HomeFragment.this.selectedAufgabeId), Toast.LENGTH_SHORT).show();
Toast.makeText(getActivity(), "selectedAufgabeInstanzId: " + String.valueOf(HomeFragment.this.selectedAufgabeInstanzId), Toast.LENGTH_SHORT).show();
// The 'which' argument contains the index position
// of the selected item
switch (which) {
case 0:
// nur_diese_wiederholung_löschen
String aufgabeInstanzWhere = AufgabeInstanzContract.Columns._ID + " = ?";
String[] aufgabeInstanzSelectionArgs = {String.valueOf(HomeFragment.this.selectedAufgabeInstanzId)};
int rows = HomeFragment.this.getActivity().getApplicationContext().getContentResolver().delete(AufgabeInstanzContract.CONTENT_URI, aufgabeInstanzWhere, aufgabeInstanzSelectionArgs);
loadAufgabenData();
break;
case 1:
// alle_wiederholungen_löschen
String aufgabeInstanzWhere2 = AufgabeInstanzContract.Columns.AUFGABE_ID + " = ?";
String[] aufgabeInstanzSelectionArgs2 = {String.valueOf(HomeFragment.this.selectedAufgabeId)};
int rows2 = HomeFragment.this.getActivity().getApplicationContext().getContentResolver().delete(AufgabeInstanzContract.CONTENT_URI, aufgabeInstanzWhere2, aufgabeInstanzSelectionArgs2);
loadAufgabenData();
Toast.makeText(getActivity(), "clicked 2", Toast.LENGTH_SHORT).show();
break;
}
}
});
builder.create().show();
selectedAufgabeId和selectedAufgabeInstanzId是public int属性,它们通过用户交互更改其值。但是,两个属性都保持其初始值(片段开头的值)。 如何访问当前值?