Добавим спиннер в диалог
В файл 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;
}
//---создаем диалог-------------------------------
}






.png)
