Boa tarde,
Tenho duas abas com dois EditText, uma em cada Aba. Como que faço para pegar os valores dos EditText ao clicar num botão e mostrar na tela como um Toast.
Boa tarde,
Tenho duas abas com dois EditText, uma em cada Aba. Como que faço para pegar os valores dos EditText ao clicar num botão e mostrar na tela como um Toast.
Duas abas ou duas telas?
Está usando que componente para criar as abas?
Duas abas mesmo.
Alguém pra ajudar?
Artur Bernardo, me ajuda, to usando o TabHost. Mas tem como criar via xml?
Aba A, EditTextNome.
Aba B EditTextSobrenome
Mostrar num toast valores do EditText da aba A + EditTextSobrenome da aba B
Artur, me ajuda, ja tenho as abas só falta pegar os valores.
TabHost? Nem conheço, nunca usei.
Tu tenta pegar o valor da aba “desaparecida”, e vem null? Ou da erro do aplicativo?
Se for isso, ela deve estar sendo destruída.
Quando tu volta, o valor do campo sumiu?
Tu pode enviar para a “sessão” o valor do editText, quando a aba for destruída.
algo mais ou menos assim
public void onStop() {
valorDaAbaQueSeFoi = (pega valor do editText);
this.getIntent().putExtra( "valorDaAbaQueSeFoi", valorDaAbaQueSeFoi);
}
depois tu pega os dados na outra aba.
Bundle sessao = this.getIntent().getExtras();
syncEnd = (Boolean) sessao.get( "valorDaAbaQueSeFoi" );
fbrigatt, tranquilo? Conseguiu resolver?
Estou com um problema parecido, ao clicar na aba2 preciso pegar um informação no Edit na aba1 e carregar para aba2.
Alguem pode me ajudar?
fbrigatt, tranquilo? Conseguiu resolver?Estou com um problema parecido, ao clicar na aba2 preciso pegar um informação no Edit na aba1 e carregar para aba2.
Alguem pode me ajudar?
Quando tu volta, a informação continua lá? Ou ela sumiu?
Se ela continua lá, um “findViewById” resolve.
Se ela some, tem de usar o ciclo de vida da activity a teu favor.
Quando sair dela, ela pode ser pausada, destruída ou “stopada”.
A solução é sobrescrever algum destes métodos e ali fazer tua lógica.
Eu só coloquei os edits la, ainda não vi isso. Mas como que recupero esses valores no botão da aba 3? Eu to rodando aqui pra ver o que perguntou.
Acabei de testar. Quando digito e mudo de aba e volto, ta la o que escrevi.
e o findViewById retorna o que?
Se está achando o View, é só pegar o valor dela.
não sei onde colocar esse código qdo usa abas. Tenho 03 e o botão ta na terceira aba. Vc tem skype ou talk?
meu skype é: [email removido]
o gtalk é: [email removido]
Sei que tem que usar o edtNome.getText(), mas não estou sabendo onde colocar isso.
edtNome está na aba 1. Esse código é da aba 3. Está dando erro de JavaNullPointerException. Sei que isso é alguma coisa que não foi inicializada. O erro ocorre no click do botão.
Obs.: Estou TENTANDO fazer. Peço ajuda nesse erro, por favor. Fico no aguardo.
package com.example.androidtablayout;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class VideosActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.videos_layout);
final EditText Nome = (EditText) findViewById(R.id.edtNome);
Button Salvar = (Button) findViewById(R.id.btnSalvar);
Salvar.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
String nome = Nome.getText().toString();
Toast.makeText(getBaseContext(), nome, Toast.LENGTH_LONG).show();
}
});
}
}
Não é uma maneira elegante, declara os componentes como variáveis estáticas.
Então como seria?
onde coloco? To tentando aqui e nada.
assim:
public class VideosActivity extends Activity {
public Static final String nome = null;
public void onCreate(Bundle savedInstanceState) {
.....restante do código
Se tu troca a variavel Nome por algum texto como “funciona?”, o Toast aparece?
Estou testando. Ja posto a resposta.
Não, da erro também.
Se comento as linhas:
package com.example.androidtablayout;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class VideosActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.videos_layout);
// final EditText Nome = (EditText) findViewById(R.id.edtNome);
Button Salvar = (Button) findViewById(R.id.btnSalvar);
Salvar.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
// String nome = Nome.getText().toString();
Toast.makeText(getBaseContext(), "nome", Toast.LENGTH_LONG).show();
}
});
}
}
Mostra o toast.
Ninguém?
Olá
Veja se esse post ajuda: http://agorandroid.blogspot.com.br/2013/01/dica-como-chamar-metodos-em-activities.html
A H Gusukuma,
Não entendi direito isso. Não estou sabendo onde colocar esse método. Tem como me ajudar? Tem skype ou gtalk?
A minha classe principal é essa:
package com.example.androidtablayout;
import android.app.TabActivity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;
public class AndroidTabLayoutActivity extends TabActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TabHost tabHost = getTabHost();
// Tab for Photos
TabSpec photospec = tabHost.newTabSpec("Photos");
photospec.setIndicator("Photos", getResources().getDrawable(R.drawable.icon_photos_tab));
Intent photosIntent = new Intent(this, PhotosActivity.class);
photospec.setContent(photosIntent);
// Tab for Songs
TabSpec songspec = tabHost.newTabSpec("Songs");
// setting Title and Icon for the Tab
songspec.setIndicator("Songs", getResources().getDrawable(R.drawable.icon_songs_tab));
Intent songsIntent = new Intent(this, SongsActivity.class);
songspec.setContent(songsIntent);
// Tab for Videos
TabSpec videospec = tabHost.newTabSpec("Videos");
videospec.setIndicator("Videos", getResources().getDrawable(R.drawable.icon_videos_tab));
Intent videosIntent = new Intent(this, VideosActivity.class);
videospec.setContent(videosIntent);
// Adding all TabSpec to TabHost
tabHost.addTab(photospec); // Adding photos tab
tabHost.addTab(songspec); // Adding songs tab
tabHost.addTab(videospec); // Adding videos tab
}
}
Essa aqui é uma aba 3 com um botão:
package com.example.androidtablayout;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class VideosActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.videos_layout);
final EditText Nome = (EditText) findViewById(R.id.edtNome);
Button Salvar = (Button) findViewById(R.id.btnSalvar);
Salvar.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
String nome = Nome.getText().toString();
Toast.makeText(getBaseContext(), nome, Toast.LENGTH_LONG).show();
}
});
}
}
Eu queria pegar o valor do edtNome que ta na aba 1 e edtSobrenome aba 2 e mostrar na aba 3
A ideia do post é manter os dados a serem compartilhados num singleton, e, quando for necessário, usar os dados salvos no singleton.
Tem como me ajudar a fazer isso? Tem skype? O meu é [email removido]
Desculpe-me, mas só tenho disponibilidade p/ forum.
Mas é por aqui mesmo. O código ta postado ai. Só dizer o que fazer.
No post que citei mostra exatamente isso.
Mas como usa, essa é a pergunta.
Alguém pode me ajudar?
Pessoal,
Eu consegui fazer mas não estou entendendo uma coisa. No final do email explico.
Criei essa classe conform blog:
public class MySingleton {
private int myInt;
private String myString;
private static MySingleton instance ;
private MySingleton() {
myInt = 0;
myString = "";
}
public static MySingleton getInstance () {
if ( MySingleton.instance == null ) {
MySingleton.instance = new MySingleton();
}
return MySingleton.instance;
}
public int getMyInt() {
return myInt;
}
public void setMyInt(int i) {
this.myInt = i;
}
public String getMyString() {
return myString;
}
public void setMyString(String s) {
this.myString = s;
}
}
Chamo ela desse jeito, uso isso na 1ª aba:
MySingleton mDados = MySingleton.getInstance ();
mDados.setMyInt(100);
mDados.setMyString("Testando classe");
E uso desse jeito na 3ª:
Salvar.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
MySingleton mDados = MySingleton.getInstance ();
int i = mDados.getMyInt();
String s = mDados.getMyString();
Toast.makeText(getBaseContext(), s, Toast.LENGTH_LONG).show();
}
});
Desse jeito se clico no botão da 3ª aba mostra o texto no toast: Testando classe?
Se mudo para esse jeito na 1ª não mostra nada no Toast:
String s = nome.getText().toString();
mDados.setMyString(s);
Pergunta: O que está errado?
Obs.: PESQUISEI, ENCONTREI E ADAPTEI, só não está funcionando direito. Poderiam me ajudar agora, por favor? Pode ser dúvida de outras pessoas.
Posta como ficou o código da primeira aba, só esse trecho não dá para avaliar
Photos.java (1 aba)
package com.example.androidtablayout;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class PhotosActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.photos_layout);
final EditText nome = (EditText) findViewById(R.id.edtNome);
Button Salvar = (Button) findViewById(R.id.btnSalvar);
MySingleton mDados = MySingleton.getInstance ();
mDados.setMyInt(100);
mDados.setMyString("Testando classe");
// String s = nome.getText().toString();
// mDados.setMyString(s);
Salvar.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String valor = nome.getText().toString();
Toast.makeText(getBaseContext(), valor, Toast.LENGTH_LONG).show();
}
});
}
}