告訴大家如何記憶用戶單選和復選對話框的選項
package?com.example.alertdialogdemo;
import?android.app.Activity;
import?android.app.AlertDialog;
import?android.content.DialogInterface;
import?android.os.Bundle;
import?android.view.View;
import?android.view.View.OnClickListener;
import?android.widget.Toast;
public?class?MainActivity?extends?Activity?{
String[]?single_list?=?{"男",?"女",?"女博士",?"程序員"};
String[]?hobby_list?=?{"音樂",?"籃球",?"足球",?"吉他"};
boolean[]?checkedList?=?{false,?false,?false,?false};
private?int?checkedItem?=?0;
@Override
protected?void?onCreate(Bundle?savedInstanceState)?{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initEvent1();
initEvent2();
initEvent3();
}
private?void?initEvent1()?{
findViewById(R.id.dialog_btn1).setOnClickListener(new?OnClickListener()?{
public?void?onClick(View?v)?{
showDialog1();
}
});
}
private?void?initEvent2()?{
findViewById(R.id.dialog_btn2).setOnClickListener(new?OnClickListener()?{
public?void?onClick(View?v)?{
showDialog2();
}
});
}
private?void?initEvent3()?{
findViewById(R.id.dialog_btn3).setOnClickListener(new?OnClickListener()?{
public?void?onClick(View?v)?{
showDialog3();
}
});
}
/**
?*?顯示確認對話框
?*/
private?void?showDialog1()?{
AlertDialog.Builder?builder?=?new?AlertDialog.Builder(this);
builder.setTitle("確認對話框");
builder.setIcon(R.drawable.ic_launcher);
builder.setMessage("這是確認的內容");??//設置內容
builder.setPositiveButton("確定",?new?DialogInterface.OnClickListener()?{
public?void?onClick(DialogInterface?dialog,?int?which)?{
Toast.makeText(MainActivity.this,?"確認內容",?Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("取消",?new?DialogInterface.OnClickListener()?{
public?void?onClick(DialogInterface?dialog,?int?which)?{
//?TODO?Auto-generated?method?stub
Toast.makeText(MainActivity.this,?"取消內容",?Toast.LENGTH_SHORT).show();
}
});
AlertDialog?dialog?=?builder.create();?//獲取dialog
dialog.show();?
}
private?void?showDialog2()?{
AlertDialog.Builder?builder?=?new?AlertDialog.Builder(this);
builder.setTitle("選擇性別");
builder.setIcon(R.drawable.ic_launcher);
builder.setSingleChoiceItems(single_list,?checkedItem,?new?DialogInterface.OnClickListener()?{
public?void?onClick(DialogInterface?dialog,?int?which)?{
String?str?=?single_list[which];
checkedItem?=?which;??//記憶單選框選項
Toast.makeText(MainActivity.this,?"此人是"?+?str?+?"!",?
Toast.LENGTH_SHORT).show();
}
});
AlertDialog?dialog?=?builder.create();
dialog.show();
}
private?void?showDialog3()?{
AlertDialog.Builder?builder?=?new?AlertDialog.Builder(this);
builder.setTitle("愛好");
builder.setIcon(R.drawable.ic_launcher);
builder.setMultiChoiceItems(hobby_list,?checkedList,?new?DialogInterface.OnMultiChoiceClickListener()?{
public?void?onClick(DialogInterface?dialog,?int?which,?boolean?isChecked)?{
String?str?=?hobby_list[which];
checkedList[which]?=?isChecked;??//記住復選框選項
if?(isChecked)?{
Toast.makeText(MainActivity.this,?"I?like?"?+?str?+?"!",?Toast.LENGTH_SHORT).show();
}?else?{
Toast.makeText(MainActivity.this,?"I?dislike?"?+?str?+?"!",?Toast.LENGTH_SHORT).show();
???}
}
});
builder.setPositiveButton("確定",?new?DialogInterface.OnClickListener()?{
public?void?onClick(DialogInterface?dialog,?int?which)?{
//?TODO?Auto-generated?method?stub
dialog.cancel();
}
});
builder.setNegativeButton("取消",?new?DialogInterface.OnClickListener()?{
public?void?onClick(DialogInterface?dialog,?int?which)?{
//?TODO?Auto-generated?method?stub
dialog.cancel();
}
});
AlertDialog?dialog?=?builder.create();
dialog.show();
????}
}這是我的代碼,大家可以參考下,記憶復選框,只需在開始定義一個布爾類型的數組,初始值都設置為false,然后在點擊事件里將isChecked的值賦給定義的數組即可;單選只需定義一個int型的變量,方法和復選類似,還不懂的可以仔細看看代碼。
2016-05-31
居然寫在了問答里,不是一般寫在筆記分類下么……