好,所以我正在创建一个ArrayAdapter并在我的Alert Dialog中使用它,因为我不想在SingleItemSelection对话框上显示默认的单选按钮.
相反,我想更改所选项目的背景,然后当用户按下正按钮时,我将执行与已选择的项目相关的操作.
private void showAlertDialog() { final String[] options = getResources().getStringArray(R.array.dialog_options); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,options); AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this); dialogBuilder.setTitle("My Dialog"); dialogBuilder.setAdapter(adapter,new OnClickListener() { @Override public void onClick(DialogInterface dialog,int which) { Toast.makeText(getApplicationContext(),"item clicked at index " + which,Toast.LENGTH_LONG).show(); // Here I need to change the background color of the item selected and prevent the dialog from being dismissed } }); //String strOkay = getString(R.string.okay); dialogBuilder.setPositiveButton("OK",null); // TODO dialogBuilder.setNegativeButton("Cancel",null); // nothing simply dismiss AlertDialog dialog = dialogBuilder.create(); dialog.show(); }
我正在努力解决两个问题.
How do I prevent the dialog from being dismissed when the user clicks on an item
How do I change the background of the item that has been selected when the user clicks on it
解决方法
>您可以将自定义ListView设置为AlertDialog的内容并设置OnItemClickListener
AlertDialog.Builder builder = new AlertDialog.Builder(this); String[] items = ...; ListView list = new ListView(this); list.setAdapter(new ArrayAdapter<String>(this,android.R.layout.select_dialog_item,items)); list.setOnItemClickListener(new AdapterView.OnItemClickListener() { public void onItemClick(AdapterView<?> arg0,View view,int pos,long id) { ... } }); builder.setView(list);
然后保存对话框的引用
mDialog = builder.show();
以便在必要时解散
mDialog.dismiss();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。