I have a butoon, on clicking of this button i want to open multiple buttons on a single AlertDialog like this :
我有一个butoon,点击这个按钮我想在一个AlertDialog上打开多个按钮,如下所示:
Give Me a help :
给我一个帮助:
I was using this.... to add multiple buttons alertDialog.setButton(delete, "Delete", new OnClickListener() {
我正在使用这个....添加多个按钮alertDialog.setButton(删除,“删除”,新的OnClickListener(){
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
but I found..., change setButton() to setButton2().. something like..... wt xcan i do for this....
但我发现......,将setButton()更改为setButton2()......就像..... wt xcan我为此做....
5 个解决方案
#1
17
I would inflate the AlertDialog with my own custom view (my_alert_dialog.xml).
我会用我自己的自定义视图(my_alert_dialog.xml)来扩展AlertDialog。
AlertDialog.Builder alert = new AlertDialog.Builder(this);
LayoutInflater inflater = getLayoutInflater();
//inflate view for alertdialog since we are using multiple views inside a viewgroup (root = Layout top-level) (linear, relative, framelayout etc..)
View view = inflater.inflate(R.layout.my_alert_dialog, (ViewGroup) findViewById(R.id.root));
Button button1 = (Button) view.findViewById(R.id.button1); // etc.. for button2,3,4.
alert.setView(view);
alert.show();
#2
93
A simple solution without xml:
没有xml的简单解决方案:
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("Title");
builder.setItems(new CharSequence[]
{"button 1", "button 2", "button 3", "button 4"},
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// The 'which' argument contains the index position
// of the selected item
switch (which) {
case 0:
Toast.makeText(context, "clicked 1", Toast.LENGTH_SHORT).show();
break;
case 1:
Toast.makeText(context, "clicked 2", Toast.LENGTH_SHORT).show();
break;
case 2:
Toast.makeText(context, "clicked 3", Toast.LENGTH_SHORT).show();
break;
case 3:
Toast.makeText(context, "clicked 4", Toast.LENGTH_SHORT).show();
break;
}
}
});
builder.create().show();
#3
3
You can only create a Alertdialog with 3 buttons if you dont make the view by yourself.
如果您不自己制作视图,则只能使用3个按钮创建Alertdialog。
You can either make your own custom view in xml.
您可以在xml中创建自己的自定义视图。
but i'd suggest you just make a List.
但我建议你只做一个清单。
Check http://developer.android.com/guide/topics/ui/dialogs.html#AlertDialog "Adding a list"
查看http://developer.android.com/guide/topics/ui/dialogs.html#AlertDialog“添加列表”
#4
0
Dialog dialog = new Dialog(context);
RelativeLayout featureLayout = (RelativeLayout) View.inflate(this, R.layout.yourview, null);
dialog.setContentView(featureLayout);
dialog.show();
#5
0
int item = 0;
ArrayList<String> list = new ArrayList<String>();
ArrayList<Integer> intList = new ArrayList<Integer>();
list.add("A");
list.add("B");
list.add("C");
list.add("D");
item = -1;
for (int i = 0; i < list.size(); i++) {
item++;
intList.add(i);
}
showRatingBarAlertDialog(intList);
private void showRatingBarAlertDialog(ArrayList<Integer> Id) {
if (item != -1) {
RatingFragment alertDialog = RatingFragment.instance(BaseActivity.this, Id.get(item), (ratingValue, comments) -> {
CXLog.d(TAG, "select the rating::" + ratingValue);
CXLog.d(TAG, "comment the feednback " + comments);
item--;
showRatingBarAlertDialog(requestId);
});
alertDialog.show(CXBaseActivity.this.getFragmentManager(), "alertDialog");
}
}
#1
17
I would inflate the AlertDialog with my own custom view (my_alert_dialog.xml).
我会用我自己的自定义视图(my_alert_dialog.xml)来扩展AlertDialog。
AlertDialog.Builder alert = new AlertDialog.Builder(this);
LayoutInflater inflater = getLayoutInflater();
//inflate view for alertdialog since we are using multiple views inside a viewgroup (root = Layout top-level) (linear, relative, framelayout etc..)
View view = inflater.inflate(R.layout.my_alert_dialog, (ViewGroup) findViewById(R.id.root));
Button button1 = (Button) view.findViewById(R.id.button1); // etc.. for button2,3,4.
alert.setView(view);
alert.show();
#2
93
A simple solution without xml:
没有xml的简单解决方案:
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("Title");
builder.setItems(new CharSequence[]
{"button 1", "button 2", "button 3", "button 4"},
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// The 'which' argument contains the index position
// of the selected item
switch (which) {
case 0:
Toast.makeText(context, "clicked 1", Toast.LENGTH_SHORT).show();
break;
case 1:
Toast.makeText(context, "clicked 2", Toast.LENGTH_SHORT).show();
break;
case 2:
Toast.makeText(context, "clicked 3", Toast.LENGTH_SHORT).show();
break;
case 3:
Toast.makeText(context, "clicked 4", Toast.LENGTH_SHORT).show();
break;
}
}
});
builder.create().show();
#3
3
You can only create a Alertdialog with 3 buttons if you dont make the view by yourself.
如果您不自己制作视图,则只能使用3个按钮创建Alertdialog。
You can either make your own custom view in xml.
您可以在xml中创建自己的自定义视图。
but i'd suggest you just make a List.
但我建议你只做一个清单。
Check http://developer.android.com/guide/topics/ui/dialogs.html#AlertDialog "Adding a list"
查看http://developer.android.com/guide/topics/ui/dialogs.html#AlertDialog“添加列表”
#4
0
Dialog dialog = new Dialog(context);
RelativeLayout featureLayout = (RelativeLayout) View.inflate(this, R.layout.yourview, null);
dialog.setContentView(featureLayout);
dialog.show();
#5
0
int item = 0;
ArrayList<String> list = new ArrayList<String>();
ArrayList<Integer> intList = new ArrayList<Integer>();
list.add("A");
list.add("B");
list.add("C");
list.add("D");
item = -1;
for (int i = 0; i < list.size(); i++) {
item++;
intList.add(i);
}
showRatingBarAlertDialog(intList);
private void showRatingBarAlertDialog(ArrayList<Integer> Id) {
if (item != -1) {
RatingFragment alertDialog = RatingFragment.instance(BaseActivity.this, Id.get(item), (ratingValue, comments) -> {
CXLog.d(TAG, "select the rating::" + ratingValue);
CXLog.d(TAG, "comment the feednback " + comments);
item--;
showRatingBarAlertDialog(requestId);
});
alertDialog.show(CXBaseActivity.this.getFragmentManager(), "alertDialog");
}
}