次のコードがあります。
private void spinnerValue(){
spinnerwho=(Spinner)findViewById(R.id.spinnerWho);
ArrayAdapter<String> adapter=new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
adapter.add("A");
adapter.add("B");
spinnerwho.setAdapter(adapter);
spinnerwho.setOnItemSelectedListener(spinnerlistener);
}
private OnItemSelectedListener spinnerlistener= new OnItemSelectedListener(){
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
if(arg0.getSelectedItem().toString().contentEquals("A")){
if (imagechanged){
displayalert();
}
else{
// Do some operation
}
}
if(arg0.getSelectedItem().toString().contentEquals("B")){
// do some operation
}
}
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
};
private void displayAlert(DialogInterface.OnClickListener listener) {
AlertDialog dlgAlertBox;
AlertDialog.Builder dlgAlert = new AlertDialog.Builder(this);
dlgAlert.setMessage("data will be lost if you change value without saving. Continue?");
dlgAlert.setPositiveButton("Yes", listener);
dlgAlert.setNegativeButton("No", listener);
dlgAlert.setCancelable(true);
dlgAlertBox = dlgAlert.create();
dlgAlertBox.show();
}
protected DialogInterface.OnClickListener BackButtonListenerforengineer = new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which)
{
switch (which){
case DialogInterface.BUTTON_POSITIVE:
// do some operation
break;
case DialogInterface.BUTTON_NEGATIVE:
dialog.dismiss();
// revert to previous selection
/*Signature.this.spinnerwho.getAdapter();
ArrayAdapter<String> adapter=new ArrayAdapter<String>(Signature.this, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
adapter.clear();
adapter.add("Tenant");
adapter.add("Engineer");
spinnerwho.setAdapter(adapter);
spinnerwho.setSelection(1,true);
spinnerwho.setOnItemSelectedListener(null);*/
break;
}
スピナーの値を選択し、状態を確認します。スピナーの項目を変更しようとすると、[はい] と [いいえ] ボタンのある警告ダイアログが表示されます。はいをクリックすると、スピナーの値が変更されます。ユーザーが [いいえ] をクリックすると、スピナーは以前の選択に戻ります。スピナーアダプターをクリアして、新しい値を入力してみました。しかし、機能していません。私が間違っていた場所を指摘して、誰かが私を助けることができますか? 前もって感謝します。