2011-12-22 70 views
1

我有一个对话窗口,如图所示,并且我有要求在每个项目旁边添加一个EditText(取数量),任何可能的方法来实现此目的...?将EditText添加到对话框

want to add EditText next to every item

我试图创建独立的观点,并将其设置为AlertDialog,但得到的底部单一的EditText ..

有没有办法,我可以在清单中添加的EditText旁边的每一个项目的任何可能的方式这里BEC项目是从一个一个数组项[]填充,用

 DialogInterface.OnMultiChoiceClickListener itemsDialogListener = 
     new DialogInterface.OnMultiChoiceClickListener() { 
    @Override 
    public void onClick(DialogInterface dialog, int which, boolean isChecked) { 
      if(isChecked) 
       selectedItems.add(Items[which]); 
      else 
       selectedItems.remove(Items[which]); 
            StringBuilder stringBuilder = new StringBuilder(); 

          for(CharSequence item : selectedItems) 
         stringBuilder.append(item + ","); 

          selectItems.setText(stringBuilder.toString()); 
     } 
    }; 

AlertDialog.Builder builder = new AlertDialog.Builder(this); 
LayoutInflater li=LayoutInflater.from(this); 
View v1=li.inflate(R.layout.itementry, null);//itementry view has one EditText 
builder.setTitle("Select Items"); 
builder.setMultiChoiceItems(colours, checkedItems, itemsDialogListener); 
builder.setView(v1); //By setting this line only one EditText is visible at 
           the bottom of alert dialog. 
AlertDialog dialog = builder.create(); 
dialog.show();  

回答

2

是的,你可以设计自己的视图(XML布局),并通过使用setContentView()方法将其设置为对话框。

例如:

dialog.setContentView(R.layout.layoutdialog); 

dialog.setView(R.layout.layoutdialog) // for Alert dialog 
+0

我想这应该是的setView(R.layout.layoutDialog) ; – 2011-12-22 06:00:13

+0

@ N-JOY选中此[Android自定义对话框](http://developer.android.com/guide/topics/ui/dialogs.html#CustomDialog)并搜索setContentView()。 – 2011-12-22 06:03:58

+0

你okk我以为你提醒它alertDialog。因为AlertDialog.Builder类具有方法setView(layout); – 2011-12-22 06:09:56

0

是,帕雷什Mayani是正确的。我已经做到了这一点,就像他所说的一样。如创建在布局一个XML布局将您EDITTEXT,纺纱,textviews等..

<?xml version="1.0" encoding="utf-8"?> 

<EditText 
    android:id="@+id/titleText1" 
    android:layout_width="200px" 
    android:layout_height="wrap_content" 
    android:layout_x="115dp" 
    android:layout_y="11dp" 
    android:singleLine="true" > 

    <requestFocus></requestFocus> 
</EditText> 
<EditText android:layout_height="wrap_content" android:inputType="textPersonName" android:id="@+id/personText2" android:layout_y="66dp" android:layout_width="200px" android:layout_x="115dp"></EditText> 
</AbsoluteLayout> 

,并在您alertDialog生成器来创建使用此布局。像

 AlertDialog.Builder builder = new AlertDialog.Builder(yourActivity.this); 
     LayoutInflater li=LayoutInflater.from(yourActivity.this); 
     View v1=li.inflate(R.layout.alertDialogLayout, null); 
     builder.setIcon(android.R.drawable.ic_input_get); 
     builder.setView(v1); 
     builder.setTitle("Something like your opinion"); 

而且,也请参阅以下链接

1)Custom AlertDialog

2)Custom AlertDialog - 2

+0

是的SPK,它的工作原理,但实际上我想添加edittext旁边的每个项目,如果我设置builder.setView(视图),我得到它在清单的底部, – user1065490 2011-12-22 06:17:23

+0

@ user1065490请参阅我编辑的答案并参考这些链接。这可能对您有所帮助。而且,不要忘记接受任何人的答案,你给出了准确的答案。 – Praveenkumar 2011-12-22 06:22:23

+0

是的SPK,它的工作原理,但实际上我想添加edittext旁边的每个项目,如果我设置builder.setView(视图),我得到它在清单的底部,实际上弹出窗口项目是从一个ArrayList ...我在做什么,\t AlertDialog.Builder builder = new AlertDialog.Builder(this); LayoutInflater li = LayoutInflater.from(this); View v1 = li.inflate(R.layout。itementry,null); builder.setTitle(“选择项目”); builder.setMultiChoiceItems(colors,checkedItems,itemsDialogListener); \t \t builder.setView(v1); – user1065490 2011-12-22 06:27:58

2
 final AlertDialog.Builder alert = new AlertDialog.Builder(this); 
    final EditText input = new EditText(this); 
    alert.setTitle("Enter the Number of Items"); 
    alert.setView(input); 
    //final String s=input.getText().toString(); 
    alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() 
    { 
     public void onClick(DialogInterface dialog, int whichButton) 
     { 
     int i=arg2; 
     values[i]= input.getText().toString().trim(); 
     } 
    }); 
    alert.show(); 
0
EditText edt = new EditText(this); 
    edt.setFilters(new InputFilter[] { new InputFilter.LengthFilter(10)}); 
    AlertDialog.Bulider altBx = new AlertDialog.Builder(this); 
    altBx.setTitle("My dialog"); 
    altBx.setMessage("Welcome, Please Enter your name"); 
    altBx.setIcon(R.drawable.logo); 
    altBx.setView(edt); 

    altBx.setPositiveButton("Ok", new DialogInterface.OnClickListener() 
    { 
     public void onClick(DialogInterface dialog, int which) 
     { 
      if(edt.getText().toString().length()!=0) 
      { 
       //do anything 
      } 
      else 
      { 
      //any msg 
      } 
     } 
    }); 
    altBx.setNeutralButton("Cancel", new DialogInterface.OnClickListener() 
    { 
     public void onClick(DialogInterface dialog, int which) 
     { 
      //any msg 
     } 
    }); 
    altBx.show();