2015-05-28 101 views
2

嗨,我使用AlertDialog沒有自定義視圖,通過設置列出的陣列適配器:帶有Edittext setView的Android AlertDialog Builder顯示底部?

AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); 
final EditText input = new EditText(MainActivity.this); 
builder.setView(input); 
builder.setTitle("Please Select"); 

String[] listStrings = {"string1", "string2"}; 
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_single_choice, listStrings); 
builder.setSingleChoiceItems(arrayAdapter, 0, new DialogInterface.OnClickListener() 
{ 
    @Override 
    public void onClick(DialogInterface dialog, int which) 
    { 
     dialog.dismiss(); 
    } 
}); 

builder.show(); 

,我要附加EditText搜索列表,但EditText顯示在列表的末尾。我想EditText列表的頂部,所以請建議我不使用自定義佈局。

final EditText input = new EditText(MainActivity.this); 
builder.setView(input); 

我試圖通過改變builder.setView(input);

回答

0
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); 
    final EditText input = new EditText(MainActivity.this); 
    LinearLayout layout=new LinearLayout(this); 
    layout.setOrientation(LinearLayout.VERTICAL); 
    layout.addView(input); 
    builder.setTitle("Please Select"); 

    String[] listStrings = {"string1", "string2"}; 
    ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_single_choice, listStrings); 

    ListView list=new ListView(this); 


    list.setAdapter(arrayAdapter); 
    layout.addView(list); 
    list.setOnItemClickListener(new OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> parent, View view, 
       int position, long id) { 


     } 
    }); 
    builder.setView(layout); 
    builder.show(); 
0

序列試試這個

boolean checked = false; 


AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); 
     LinearLayout linear = new LinearLayout(MainActivity.this); 
     LinearLayout.LayoutParams parm = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); 
     linear.setOrientation(LinearLayout.VERTICAL); 
     linear.setLayoutParams(parm); 
     final EditText input = new EditText(MainActivity.this); 
     builder.setTitle("Please Select"); 
     linear.addView(input); 

     String[] listStrings = {"string1", "string2"}; 
     ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_single_choice, listStrings); 
     ListView list=new ListView(this); 


     list.setAdapter(arrayAdapter); 
     linear.addView(list); 

     list.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> parent, View view, 
            int position, long id) { 
       CheckedTextView chk = (CheckedTextView) view; 
       Log.d("", "Checked = " + checked); 
       checked = checked ? false:true; 
       chk.setChecked(checked); 

      } 
     }); 
     builder.setView(linear); 

     builder.show();