在AlertDialog中填充微调器

时间:2017-12-14 08:43:22

标签: android spinner alertdialog

我正在尝试使用以下代码填充AlertDialog中的微调器:

ArrayAdapter<String> dataAdapter = new ArrayAdapter<>(this,
            android.R.layout.simple_spinner_item, providersList);

    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    AlertDialog.Builder checkInDialog1 = new AlertDialog.Builder(this); 
    checkInDialog1.setView(R.layout.layout_checkin_items);

    checkInDialog1.show();
    AlertDialog builder = checkInDialog1.create();
    Spinner checkInProviders = (Spinner) builder.findViewById(R.id.providers);
    checkInProviders.setAdapter(dataAdapter);

但是builder.findViewById为checkInProviders返回null。

在我的XML中:

<Spinner
        android:id="@+id/providers"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

请帮忙。感谢。

2 个答案:

答案 0 :(得分:1)

我认为你不是在夸大观点

  

查看dialogView = inflater.inflate(R.layout.layout_checkin_items,null);

AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
LayoutInflater inflater = this.getLayoutInflater();
final View dialogView = inflater.inflate(R.layout.layout_checkin_items, null);
dialogBuilder.setView(dialogView);

Spinner checkInProviders = (Spinner) dialogView .findViewById(R.id.providers);

在底部只添加

  

AlertDialog b = dialogBu​​ilder.create();

b.show();

答案 1 :(得分:0)

  

试试这个

AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
LayoutInflater inflater = this.getLayoutInflater();
final View myView = inflater.inflate(R.layout.layout_checkin_items, null);
dialogBuilder.setView(myView);    
Spinner checkInProviders = (Spinner) myView .findViewById(R.id.providers);
 ArrayAdapter<String> dataAdapter = new ArrayAdapter<>(this,
            android.R.layout.simple_spinner_item, providersList);

dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
checkInProviders.setAdapter(dataAdapter);
  

试试这个

Dialog dialog=new Dialog(this);
dialog.setTitle("Title");     
dialog.setContentView(R.layout.layout_checkin_items); 
Spinner checkInProviders = (Spinner) dialog.findViewById(R.id.providers);
ArrayAdapter<String> dataAdapter = new ArrayAdapter<>(this,
            android.R.layout.simple_spinner_item, providersList);

dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
checkInProviders.setAdapter(dataAdapter);

dialog.show();