-1
A
回答
1
它很容易,請按照下面的教程使用警告對話框生成器來實現多選擇選擇器實現多選擇選擇器:
http://labs.makemachine.net/2010/03/android-multi-selection-dialogs/
簡而言之:
new AlertDialog.Builder(this)
.setTitle("Planets")
.setMultiChoiceItems(new String[]{"Mars", "Earth"}, new boolean[]{false, false}, new DialogSelectionClickHandler())
.setPositiveButton("OK", new DialogButtonClickHandler())
.create();
0
btnHost = (Button) view.findViewById(R.id.btnHost);
btnHost.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
// ((TextView)((RelativeLayout)getActivity().getLayoutInflater().inflate(R.layout.event_filter_title,
// null)).findViewById(R.id.tvDialogTitle)).setText("Hosts");
// Log.d("Dialog object",
// " static made dialog in checkbox--> "+((TextView)((RelativeLayout)getActivity().getLayoutInflater().inflate(R.layout.event_filter_title,
// null)).findViewById(R.id.tvDialogTitle)).getText());
final LayoutInflater inflater123 = (LayoutInflater) getActivity()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final View view123 = inflater123.inflate(
R.layout.event_filter_title, null);
// Log.d("Dialog object",
// " static made dialog in view123--> "+view123);
//
// Log.d("Dialog object",
// " static made dialog in checkbox--> "+((CheckBox)view123.findViewById(R.id.cbSelectAll)));
//
// Log.d("Dialog object",
// " static made dialog in checkbox--> "+((CheckBox)inflater.inflate(R.layout.event_filter_title,
// (ViewGroup) ((AlertDialog)
// BeepsFragment.dialog).getCurrentFocus(),
// true).findViewById(R.id.cbSelectAll)));
//
// Log.d("Dialog object",
// " static made dialog in checkbox--> "+((CheckBox)(((RelativeLayout)getActivity().getLayoutInflater().inflate(R.layout.event_filter_title,
// null)).findViewById(R.id.cbSelectAll))));
hostsDialog = new AlertDialog.Builder(getActivity())
.setCustomTitle(/*
* Html.fromHtml(
* "<b><font color=\"purple\"> Host</font></b>"
*)
*/view123)
.setIcon(
getActivity().getResources().getDrawable(
R.drawable.add_host))
.setMultiChoiceItems(hostsStringArray, isSelectedHosts,
new OnMultiChoiceClickListener() {
// android.content.DialogInterface.OnShowListener
// ocl = new
// DialogInterface.OnShowListener() {
//
// @Override
// public void onShow(DialogInterface
// dialog) {
// // TODO Auto-generated method stub
// BeepsFragment.dialog = dialog;
// }
// };
public void onClick(DialogInterface dialog,
int clicked, boolean selected) {
boolean all = true;
Log.i("ME", hosts.toArray()[clicked]
+ " selected: " + selected);
// for (int i = 0; i <
// isSelectedHosts.length; i++){
//
// if(isSelectedHosts[i]==true){
// all = true;
// }else{
// all = false;
// }
// }
//
// Log.i("ME", all + " selected:--- "
// +((CheckBox)view123.findViewById(R.id.cbSelectAll)));
//
// if(all = true){
// ((CheckBox)view123.findViewById(R.id.cbSelectAll)).setChecked(true);
// }else{
// ((CheckBox)view123.findViewById(R.id.cbSelectAll)).setChecked(false);
// }
Log.d("Dialog object",
" static made dialog --> "
+ BeepsFragment.dialog
+ " from parameter dialog --> "
+ dialog);
}
})
.setPositiveButton(
Html.fromHtml("<b><font color=\"purple\">Apply Filter</font></b>"),
new DialogButtonClickHandler() {
// android.content.DialogInterface.OnShowListener
// ocl = new
// DialogInterface.OnShowListener() {
//
// @Override
// public void onShow(DialogInterface
// dialog) {
// // TODO Auto-generated method stub
// BeepsFragment.dialog = dialog;
// }
// };
public void onClick(DialogInterface dialog,
int clicked) {
switch (clicked) {
case DialogInterface.BUTTON_POSITIVE:
filteredList.clear();
hostsSelected.clear();
for (int i = 0; i < hostsStringArray.length; i++) {
Log.i("ME",
hosts.toArray()[i]
+ " selected: "
+ isSelectedHosts[i]
+ "\n\n\t hostStringArray-->"
+ hostsStringArray[i]);
if (isSelectedHosts[i] == true) {
hostsSelected.add(hosts
.get(i));
isSelectedHosts[i] = false;
}
// isSelectedHosts[i] = false;
}
Calendar currentCalender = Calendar
.getInstance(Locale
.getDefault());
Date currentDate = new Date(
currentCalender
.getTimeInMillis());
if (listSelected == 0) {
for (int j = 0; j < arr_BLID
.size(); j++) {
if (Helper
.stringToDate(
arr_BLID.get(
j)
.getStart_ts()
.toString(),
Helper.SERVER_FORMAT)
.after(currentDate)) {
if (hostsSelected
.contains(arr_BLID
.get(j)
.getHost_name())) {
filteredList
.add(arr_BLID
.get(j));
}
if (hostsSelected
.contains("Me"))
if (BeepApplication
.getSelfId() == arr_BLID
.get(j)
.getHost_id())
filteredList
.add(arr_BLID
.get(j));
}
}
} else {
for (int j = 0; j < arr_BLID
.size(); j++) {
if (currentDate.after(Helper
.stringToDate(
arr_BLID.get(
j)
.getStart_ts()
.toString(),
Helper.SERVER_FORMAT))) {
if (hostsSelected
.contains(arr_BLID
.get(j)
.getHost_name())) {
filteredList
.add(arr_BLID
.get(j));
}
if (hostsSelected
.contains("Me"))
if (BeepApplication
.getSelfId() == arr_BLID
.get(j)
.getHost_id())
filteredList
.add(arr_BLID
.get(j));
}
}
}
lvBeeps.setAdapter(new EventsAdapter(
ctx));
break;
}
}
})
.setNegativeButton(
Html.fromHtml("<b><font color=\"purple\">Remove Filter</font></b>"),
new DialogButtonClickHandler() {
public void onClick(
final DialogInterface dialog,
int clicked) {
Calendar currentCalender = Calendar
.getInstance(Locale
.getDefault());
Date currentDate = new Date(
currentCalender
.getTimeInMillis());
if (listSelected == 0) {
filteredList.clear();
for (int i = 0; i < arr_BLID.size(); i++) {
if (Helper.stringToDate(
arr_BLID.get(i)
.getStart_ts()
.toString(),
Helper.SERVER_FORMAT)
.after(currentDate)) {
filteredList.add(arr_BLID
.get(i));
if (i < isSelectedHosts.length) {
isSelectedHosts[i] = false;
} else {
continue;
}
}
}
lvBeeps.setAdapter(new EventsAdapter(
ctx));
} else {
filteredList.clear();
for (int i = 0; i < arr_BLID.size(); i++) {
if (currentDate.after(Helper
.stringToDate(
arr_BLID.get(i)
.getStart_ts()
.toString(),
Helper.SERVER_FORMAT))) {
filteredList.add(arr_BLID
.get(i));
if (i < isSelectedHosts.length) {
isSelectedHosts[i] = false;
} else {
continue;
}
}
}
lvBeeps.setAdapter(new EventsAdapter(
ctx));
}
}
});
final AlertDialog dlg = hostsDialog.create();
dlg.show();
((TextView) view123.findViewById(R.id.tvDialogTitle))
.setText("Hosts");
((CheckBox) view123.findViewById(R.id.cbSelectAll))
.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(
CompoundButton buttonView, boolean isChecked) {
// TODO Auto-generated method stub
if (isChecked == true) {
ListView list = dlg.getListView();
for (int i = 0; i < list.getCount(); i++) {
isSelectedHosts[i] = true;
list.setItemChecked(i, true);
}
}
else if (isChecked == false) {
ListView list = dlg.getListView();
for (int j = 0; j < list.getCount(); j++) {
isSelectedHosts[j] = false;
list.setItemChecked(j, false);
}
// }
}
}
});
}
});
相關問題
- 1. Android的警告對話框
- 2. 定製警告對話框中的Android
- 3. 的Android警告對話框不工作
- 4. Android的警告對話框在2.1
- 5. 如何使用微調器進行警告對話框
- 6. Android安全警告對話框
- 7. 如何從警告對話框
- 8. 如何使用對話框替換警告框?
- 9. 如何設計警告框在HTML
- 10. 日期選取器警告對話框
- 11. Android -alert對話框設計
- 12. 如何使用警報對話框更改微調器值? Android
- 13. jqGrid警告對話框
- 14. 警告對話框準備
- 15. 在警告對話框
- 16. 多個警告對話框
- 17. libGDX警告對話框
- 18. 安卓:警告對話框
- 19. 如何在Linux中使用Python中的警告對話框?
- 20. 如何禁用瀏覽器回發警告對話框
- 21. 如何使用共享首選項保存警告對話框
- 22. 如何保持警告對話框直到確定點擊Android
- 23. android-使用嵌套警報對話框
- 24. 會話超時警告對話框MVC
- 25. 如何顯示報警對話框android
- 26. 如何在android中爲警告對話框設置自定義字體?
- 27. 如何在Qt設計器中使用對話框表單?
- 28. 訪問按鈕的警告對話框
- 29. 沒有警告對話框的圖標
- 30. 重寫JavaScript警告jQuery的對話框