четверг, 15 ноября 2012 г.

Создание Custom Dialog (часть 2. Создание Custom_Dialog)

В этой части урока будем создавать диалоговое окно.


Т.к. мы будем открывать диалоговое окно,то вместо изменения надписи на Button  прописываем

showDialog(CUSTOM_DIALOG) ;


где CUSTOM_DIALOG константа
static final int CUSTOM_DIALOG=1;


2.Создаем диалог
Так же в MainActivity допишем следующий код для создания простого диалога.
@Override
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("Диалог");
       
            al=AlE.create();    
            al.show();
            break;     }


      return dialog;
     
 }


Получаем диалог, только с одним заголовком.






















С помощью switch можно выбрать различную форму диалога.
Например из другого места  необходимо вызвать диалог но с другим видом то,
делается это так:

В месте вызова пишем
showDialog(OTHER_DIALOG) ;
где OTHER_DIALOG константа
static final int OTHER_DIALOG=2;

И в методе onCreateDialog добавляем вывод диалога
В итоге получаем



@Override
    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("Диалог");
       
            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;     
 }






Тоже самое на видео







Полный код
//MainActivity.java

package my.ambar.dialog;

import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity {
 
 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);
     
  
    }
   });




//main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <Button 
        android:id="@+id/b_custom_dialog_id"
        android:layout_width="120dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="100dp"
        android:layout_centerHorizontal="true"
        android:text="@string/b_custom_dialog"/>
    
    <Button 
        android:id="@+id/b_custom_dialog2_id"
        android:layout_width="120dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="150dp"
        android:layout_centerHorizontal="true"
        android:text="@string/b_custom_dialog2"/>
    
</RelativeLayout>

//strings.xml
<resources>

    <string name="app_name">Custom_Dialog</string>
    
    <string name="menu_settings">Settings</string>
    <string name="title_activity_main">MainActivity</string>
    <string name="b_custom_dialog">Open Dialog</string>
    <string name="b_custom_dialog2">Other Dialog</string>
   
</resources>



Комментариев нет:

Отправить комментарий