Добавим спиннер в диалог
В файл main_dialog.xml добавим разметку спиннера в RelativeLayout
Получим такой диалог
Видео с уроком
В файл main_dialog.xml добавим разметку спиннера в RelativeLayout
< Spinner android:id="@+id/spinner" android:layout_below="@+id/button_confirm" android:layout_marginTop="10dp" android:layout_alignRight="@+id/button_confirm" android:layout_width="wrap_content" android:layout_height="wrap_content" />
Получим такой диалог
Теперь сделаем обработку элементов в диалоге
В MainActivity
прописываем
final AlertDialog al; //Моделирование окна диалога AlertDialog.Builder AlE = new AlertDialog.Builder(this); AlE.setTitle("Диалог"); //Находим файл с описание вида диалога LinearLayout view = (LinearLayout)getLayoutInflater().inflate(R.layout.main_dialog, null); //Устанавливаем диалогу внешний вид AlE.setView(view); //Находим компонеты диалогового окна EditText edit =(EditText)view.findViewById(R.id.edit); Button b_confirm = (Button)view.findViewById(R.id.button_confirm); TextView t_confirm_id =(TextView)view.findViewById(R.id.text_confirm_id); Spinner spinner = (Spinner)view.findViewById(R.id.spinner); Button b_OK = (Button)view.findViewById(R.id.button_OK); Button b_Cancel = (Button)view.findViewById(R.id.button_Cancel) al=AlE.create(); //---СПИННЕР------------- ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, order); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(adapter); //начальная позиция spinner.setSelection(1); //---спиннер-------------
simple_spinner_item и simple_spinner_dropdown_item–это встроенные xml файлы ,
для
разметки внешнего вида спиннера по умолчанию
order это массив данных, который отображается в
спиннере.
Прописываем его вместе с объявлениями переменных
Прописываем его вместе с объявлениями переменных
public String order[]={"A","B","C"};
Видео с уроком
Теперь MainActivity выглядит так
package my.ambar.dialog; import android.os.Bundle; import android.app.Activity; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.app.Dialog; import android.view.View; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.Spinner; import android.widget.TextView; public class MainActivity extends Activity { public String order[]={"A","B","C"}; protected static final int CUSTOM_DIALOG = 0; protected static final int OTHER_DIALOG = 1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final Button b_dialog = (Button)findViewById(R.id.b_custom_dialog_id); final Button b_dialog2 = (Button)findViewById(R.id.b_custom_dialog2_id); b_dialog.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { showDialog(CUSTOM_DIALOG); //b_dialog.setText("Clicked"); } }); b_dialog2.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { showDialog(OTHER_DIALOG); } }); } //---СОЗДАЕМ ДИАЛОГ------------------------------- protected Dialog onCreateDialog(int id) { Dialog dialog = null; switch (id) { case CUSTOM_DIALOG : final AlertDialog al; AlertDialog.Builder AlE = new AlertDialog.Builder(this); AlE.setTitle("Диалог"); LinearLayout view = (LinearLayout)getLayoutInflater().inflate(R.layout.main_dialog,null); AlE.setView(view); EditText edit =(EditText)view.findViewById(R.id.edit); Button b_confirm = (Button)view.findViewById(R.id.button_confirm); TextView t_confirm_id =(TextView)view.findViewById(R.id.text_confirm_id); Spinner spinner = (Spinner)view.findViewById(R.id.spinner); Button b_OK = (Button)view.findViewById(R.id.button_OK); Button b_Cancel = (Button)view.findViewById(R.id.button_Cancel); //---СПИННЕР------------- ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, order); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(adapter); //начальная позиция spinner.setSelection(1); //---спиннер------------- al=AlE.create(); al.show(); break; case OTHER_DIALOG : final AlertDialog al_other; AlertDialog.Builder Al_O = new AlertDialog.Builder(this); Al_O.setTitle("Второй Диалог"); al_other=Al_O.create(); al_other.show(); break; } return dialog; } //---создаем диалог------------------------------- }