在onClick事件后创建一个Dialog
嗨,我第一次使用对话框。 我想在单击listView中的项目后创建一个对话框:
String[] listItems = {"Colour", "Font Size",}; ListView lv = (ListView) findViewById(R.id.settings_list); lv.setAdapter(new ArrayAdapter (this, android.R.layout.simple_list_item_1, listItems)); lv.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView parent, View view, int position, long id) { String[] listItems = {"Colour", "Font Size",}; if(listItems[position].equals("Font Size")) { public dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setTitle("Choose Font Size"); } } } });
我在onCreateDialog上遇到错误(Bundle savedInstanceState)Eclipse想要一个; 在Bundle savedInstanceState周围,但developer.android说不然。 有小费吗?
在onItemClick方法中调用此方法:
public void showMyCustomDialog(Context context, String title, String message) { final Dialog dialog = new Dialog(context); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); //tell the Dialog to use the customalertdialog.xml as it's layout description dialog.setContentView(R.layout.customalertdialog); TextView titleText = (TextView) dialog.findViewById(R.id.txtTitleAlertDialog); titleText.setText(title); TextView txt = (TextView) dialog.findViewById(R.id.txtAlertDialog); txt.setText(message); Button dialogButton = (Button) dialog.findViewById(R.id.buttonAlertDialogCancel); dialogButton.setText("OK"); dialogButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dialog.dismiss(); } }); dialog.show(); }
如下所示:
lv.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView> parent, View view, int position, long id) { String[] listItems = {"Colour", "Font Size",}; if(listItems[position].equals("Font Size")) { public dialog onCreateDialog(Bundle savedInstanceState) { showMyCustomDialog(Context context, String title, String message) // pass title, message and activity context in this method. } } } });
希望它会有所帮助。
移动
public dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setTitle("Choose Font Size"); }
在类范围内,并从onItemClick
调用它
只是用
public void onItemClick(AdapterView> parent, View view, int position, long id) { String[] listItems = {"Colour", "Font Size",}; if(listItems[position].equals("Font Size")) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setTitle("Choose Font Size").show(); } }
试试这个
String[] listItems = {"Colour", "Font Size",}; ListView lv = (ListView) findViewById(R.id.settings_list); lv.setAdapter(new ArrayAdapter (this, android.R.layout.simple_list_item_1, listItems)); lv.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView> parent, View view, int position, long id) { String[] listItems = {"Colour", "Font Size",}; if(listItems[position].equals("Font Size")) { AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder( getApplicationContext()); // set title alertDialogBuilder.setTitle("Choose Font Size"); //create alert dialog AlertDialog alertDialog = alertDialogBuilder.create(); // show it alertDialog.show(); } } });