[Resolvido] Dúvida com algumas coisas (Android iniciante)

6 respostas
N
Olá galera, há algumas semanas pedi um tutorial de como programar pra Android, já que o livro que eu tinha era uma grande porcaria, e realmente os tutoriais do próprio site do Android me ajudaram, mas fiquei com dúvida em algumas coisas (Irei marca-las com // "comentário)
package nome.teste;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;

public class MainActivity extends Activity {
	
	public final static String EXTRA_MESSAGE = "nome.teste.MESSAGE";
	public final static String EXTRA_MESSAGE1 = "nome.teste.MESSAGE1";

	@Override
	protected void onCreate(Bundle savedInstanceState) //Evento ao ser iniciado o programa?
       {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) //Menu de que?
       {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}
	public void limpardados(View view) //Para o que o uso do view?
	{
		EditText editText = (EditText) findViewById(R.id.login);//edittext é o textbox que tem na tela né?
		EditText editText1 = (EditText) findViewById(R.id.senha);
		editText.setText("");
		editText1.setText("");
		editText.requestFocus();
	}
	public void sendMessage(View view)
	{
		Intent intent = new Intent(this, DisplayMessageActivity.class); //Isso define que será chamada uma nova tela (Com sua classe?)
		EditText editText = (EditText) findViewById(R.id.login);
		EditText editText1 = (EditText) findViewById(R.id.senha);
		String message = editText.getText().toString();
		String message1 = editText1.getText().toString();
		intent.putExtra(EXTRA_MESSAGE, message); //Atribuira uma string para a classe?
		intent.putExtra(EXTRA_MESSAGE1, message1);
		if(message1.equals("asd123") && message.equalsIgnoreCase("teste"))
		{
		startActivity(intent); //Inicializara a nova classe?
		}
	}

}

Agradeço a quem poder me ajudar

6 Respostas

B

Primeiro comentário (Sim, é a chamada principal do seu programa android, mais informações)
http://developer.android.com/reference/android/app/Activity.html#onCreate(android.os.Bundle)

Segundo comentário (Se você quiser adicionar ações e outras informações importantes, como configuração da aplicação, add uma coisa nova (depende da sua aplicação), mais informações)
http://developer.android.com/guide/topics/ui/menus.html#options-menu

Terceiro comentário
Uma View é um elemento de interface. Comparando com uma página HTML, seriam os elementos de formulário, como: botões, caixa de texto, radio buttons etc.
Nesse caso, ele vai chamar uma activity que irá interagir com o usuário.
http://developer.android.com/reference/android/view/View.html

Quarto comentário
Sim.

Acho que o resto dos comentários estão certo. hehehe

Marky.Vasconcelos

Os outros estão respondidos acima.

public void sendMessage(View view)  
    {  
        Intent intent = new Intent(this, DisplayMessageActivity.class); //Isso define que será chamada uma nova tela (Com sua classe?)  
        EditText editText = (EditText) findViewById(R.id.login);  
        EditText editText1 = (EditText) findViewById(R.id.senha);  
        String message = editText.getText().toString();  
        String message1 = editText1.getText().toString();  
        intent.putExtra(EXTRA_MESSAGE, message); //Atribuira uma string para a classe?  
        intent.putExtra(EXTRA_MESSAGE1, message1);  
        if(message1.equals("asd123") && message.equalsIgnoreCase("teste"))  
        {  
        startActivity(intent); //Inicializara a nova classe?  
        }  
    }

Você não está chamando uma nova tela, você está declarando uma intenção de abrir a Activity definida pelo .class.

o putExtra envia um parametro que pode ser consumido via getIntent().

Terceiro, você não exatamente “chama” uma nova tela, você envia a intenção criada que vai gerenciar as Activities na task. (Mas no caso vai abrir aquela Activity).

Para mais veja a Activity Life-cycle

N

Só mais uma coisa, to querendo fazer uma tela de login, que assim que seja logado, leve para uma outra tela, e a tela de login não tenha como reabrir, como faço isso? tentei usar o onclose e não foi

fabriciov

Intent i = new Intent(this, NovaActivity.class); i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); //esta flag fará que todas as outras activities da sua aplicação sejam fechadas quando iniciar esta nova. startActivity(i);

Marky.Vasconcelos

Um finish() na sequencia de startActivity também fará que a Activity atual seja fechada.

Mas para garantir que o usuario não entre novamente na tela de login você vai precisar guardar e verificar essa informação no SharedPreferences por exemplo.

N

Fiz assim:

if(txtsenha.equals("asd123") && txtlogin.equalsIgnoreCase("teste"))
			{
				this.finish();
				startActivity(intent);
			}
			else
			{
				senha.setText("");
				exibeMensagem("Senha incorreta");
			}
Criado 22 de julho de 2013
Ultima resposta 24 de jul. de 2013
Respostas 6
Participantes 4