Antes, é assim que iniciávamos uma Activity
Intent it = new Intent(MainActivity.this,NormalActivity.class);
it.putExtra("key1","val1");
it.putExtra("key2","val2");
startActivity(it);Code language: JavaScript (javascript)
Já parou para pensar que nem toda Activity é desenvolvida por você?
Nesse cenário, se quiser iniciar outra Activity, talvez precise consultar o desenvolvedor responsável ou ler a documentação.
Mas isso não é bem trabalhoso?
Existe alguma solução melhor?
E se passarmos a lógica de inicialização da Activity para outro desenvolvedor?
Ou seja, o criador de cada Activity adiciona um método dentro dela. Outros desenvolvedores chamam esse método para abrir a Activity.
Intent it = new Intent(MainActivity.this,NormalActivity.class);
it.putExtra("site","www.foxdevelop.com");//Iniciar outra Activity a partir da nossa Activity
//Precisamos saber quais dados a outra Activity espera, então é necessário conversar com seu desenvolvedor
startActivity(it);Code language: JavaScript (javascript)
Vamos testar. Adicionaremos um método estático na Activity alvo.
//Colocar o código de inicialização da Activity dentro da sua classe
public static void actionStart(Context context, String site, int level)
{
Intent it = new Intent(context,NormalActivity.class);
it.putExtra("site",site);
it.putExtra("level",level);
context.startActivity(it);
}Code language: JavaScript (javascript)
NormalActivity.actionStart(MainActivity.this,"www.foxdevelop.com",12);Code language: CSS (css)
Uma forma melhor de iniciar Activities
Previous: Operações com activities
Next: Controles