Olá Pessoal,
Hoje vou mostrar como criar um Custom Dialog, este recurso pode ser utilizado quando você quer criar uma tela modal.
Abaixo segue um print do projeto utilizado.
Como de costume vou apresentar todos os fontes utilizados já com comentários para facilitar no aprendizado.
Arquivo main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Retorno do custom dialog:" android:textAppearance="?android:attr/textAppearanceLarge" /> <EditText android:id="@+id/etRetorno" android:layout_width="fill_parent" android:layout_height="wrap_content" android:ems="10" > <requestFocus /> </EditText> <Button android:id="@+id/btnChamarDialog" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Chamar Dialog" android:onClick="ChamarDialog_click"/> </LinearLayout>
Arquivo customdialog.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" > <TextView android:id="@+id/tvMens" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_marginLeft="10dp" android:text="Mensagem" android:textAppearance="?android:attr/textAppearanceMedium" /> <EditText android:id="@+id/etValor" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignLeft="@+id/tvMens" android:layout_below="@+id/tvMens" android:layout_marginRight="10dp" android:inputType="text"/> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_below="@+id/etValor" android:orientation="horizontal" android:background="#C4C4C4" android:paddingTop="4dp" android:layout_marginTop="10dp"> <Button android:id="@+id/btn_Confirmar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="Confirmar" /> <Button android:id="@+id/btn_Cancelar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="Cancelar" /> </LinearLayout> </RelativeLayout>
Arquivo CustomDialogActivity.java
package br.com.EscolaDeAndroid.CustomDialog; import android.app.Activity; import android.app.Dialog; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class CustomDialogActivity extends Activity { EditText etRetorno; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); etRetorno = (EditText) findViewById(R.id.etRetorno); } //Método executado quando usuário clicar no botão //Chamar Dialog public void ChamarDialog_click(View v){ ExibeDialog(); } private void ExibeDialog(){ final Dialog dialog = new Dialog(this); dialog.setContentView(R.layout.customdialog); //define o título do Dialog dialog.setTitle("Busca de cliente:"); //instancia os objetos que estão no layout customdialog.xml final Button confirmar = (Button) dialog.findViewById(R.id.btn_Confirmar); final Button cancelar = (Button) dialog.findViewById(R.id.btn_Cancelar); final EditText editText = (EditText) dialog.findViewById(R.id.etValor); final TextView tvMens = (TextView) dialog.findViewById(R.id.tvMens); tvMens.setText("Nome"); confirmar.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { etRetorno.setText(editText.getText()); //finaliza o dialog dialog.dismiss(); } }); cancelar.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { //finaliza o dialog dialog.dismiss(); } }); //exibe na tela o dialog dialog.show(); } }
Abaixo seguem o resultado de nosso projeto.
Espero que seja útil para vocês este post e em breve estarei postando novidades.
Desenvolvi o jogo Circus Puzzle Free ele é um quebra-cabeça e está publicado no Android Market, agradeço a todos que baixarem, jogarem e comentarem.
Desenv com qualidade!