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!
5 comentários:
Seus tutoriais são muito bom.
parabéns.
Será que você poderia me ajudar no seguinte código:
Tenho uma lista do tipo usuarioBean, com vários campos, codigo, email, senha, data.
como eu faço para mostra no spinner apenas um campo desses acima?
Spinner Spinner = (Spinner) textEntryView.findViewById(R.id.spinnerList);
ArrayAdapter arrayAdapter = new ArrayAdapter(context, android.R.layout.simple_spinner_item, listBean);
ArrayAdapter spinnerArrayAdapter = arrayAdapter;
spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Spinner.setAdapter(spinnerArrayAdapter);
//Método do Spinner para capturar o item selecionado
Spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView parent, View v, int posicao, long id) {
//pega nome pela posição
usuarioBean bean = (usuarioBean) parent.getSelectedItem();
//imprime um Toast na tela com o nome que foi selecionado
Toast.makeText(context, "Email Selecionado: " + bean.getEmail(), Toast.LENGTH_LONG).show();
final EditText editTextLogin = (EditText) textEntryView.findViewById(R.id.editTextLogin);
final EditText editTextSenha = (EditText) textEntryView.findViewById(R.id.editTextSenha);
final CheckBox checkBoxSalvarSenha = (CheckBox) textEntryView.findViewById(R.id.checkBoxSalvarSenha);
editTextLogin.setText(bean.getEmail());
editTextSenha.setText(criptografia.decriptografiaMD(bean.getSenha()));
checkBoxSalvarSenha.setSelected(verificaValor.verificaValorBoolean(bean.getSalvarSenha()));
}
public void onNothingSelected(AdapterView parent) {
}
});
Elson,
Obrigado pela visita... vou ficar devendo essa resposta agora... meu filho está para nascer e por esses dias estou com tempo zero.
Assim que sobrar um tempinho eu posto um artigo sobre isso.
Até mais...
Opa blz valeu, muito grato pela resposta, eu consegui fazer o que eu queria, depois posto o código. talves alguém precise.
valeu.
Poderia postar como resolveu?
poderia postar como resolveu
Postar um comentário