>
Boa tarde, estou projetando um aplicativo no qual uma das especificações deste, necessita de que as activitys sejam chamadas de maneira sorteada. Por exemplo, com 3 janelas, quero que estas sejam chamadas sem uma sequência estática.. Tem como fazer isso?
ola rodrigo
faça isso..
import java.util.Random;
Random gerador = new Random();
int j ;
j = gerador.nextInt(3);
if (j == 1)
startActivity(activity1);
else if(j==2)
startActiviy(activity2);
else
startActivity(activity3);
Desse modo o cara sempre tem que ir mexer no codigo pra alterar a ordem das activitys. Tem como fazer para que sempre altere dinamicamente? Sem q o cara precise definir qual activity vai ser chamada em cada condicao?
Mas se random é p isso .. o random coloca o numero aleatorio entre 1,2,3.. vc testou esse codigo p ver se dar certo??
Deu certo .. Cara irei utilizar esta função sempre que chamar uma activity. A fim de quando uma activity que já foi chamada em algum sorteio anterior, não chame novamente, eu criei uma lógica booleana, porém não ficou tão legal por que esse número que já foi sorteado, continua sendo sorteado, só não é chaamado por causa dessa lógica que eu fiz. Queria que tipo assim: Um número que já foi sorteado, saia do sorteio e dê lugar somente aqueles que ainda não foram sorteado, pra não acontecer de mais de uma janela for chamada em redundancia. QUal seria a melhor lógica para isso?
Deu certo .. Cara irei utilizar esta função sempre que chamar uma activity. A fim de quando uma activity que já foi chamada em algum sorteio anterior, não chame novamente, eu criei uma lógica booleana, porém não ficou tão legal por que esse número que já foi sorteado, continua sendo sorteado, só não é chaamado por causa dessa lógica que eu fiz. Queria que tipo assim: Um número que já foi sorteado, saia do sorteio e dê lugar somente aqueles que ainda não foram sorteado, pra não acontecer de mais de uma janela for chamada em redundancia. QUal seria a melhor lógica para isso?
ta aki um exemplo
Random gerador = new Random();
int j ;
boolean a = true;
j = gerador.nextInt(3);
if ((j == 1) and (a)) {
startActivity(activity1);
a = false;
}
Eu fiz usando essa lógica....Mas não funcionou, o que eu fiz de errado?
Meu código tá assim:
import java.util.Random;
public class EscolherTemaActivity extends Activity {
Button btVariedades;
Intent activity_pergunta1;
Intent activity_pergunta2;
Intent activity_pergunta3;
Intent activity_pergunta4;
Intent activity_pergunta5;
Intent activity_pergunta6;
Intent activity_pergunta7;
Intent activity_pergunta8;
Intent activity_pergunta9;
Intent activity_pergunta10;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_escolher_tema);
btVariedades = (Button) findViewById(R.id.btVariedades);
btVariedades.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
sorteiaQuestao();
}
});
}
public void sorteiaQuestao() {
Random gerador = new Random();
int pergunta ;
pergunta = gerador.nextInt(10);
if (pergunta == 1)
startActivity(activity_pergunta1);
else if(pergunta == 2)
startActivity(activity_pergunta2);
else if(pergunta == 3)
startActivity(activity_pergunta3);
else if(pergunta == 4)
startActivity(activity_pergunta4);
else if(pergunta == 5)
startActivity(activity_pergunta5);
else if(pergunta == 6)
startActivity(activity_pergunta5);
else if(pergunta == 7)
startActivity(activity_pergunta6);
else if(pergunta == 8)
startActivity(activity_pergunta7);
else if(pergunta == 9)
startActivity(activity_pergunta8);
else if(pergunta == 10)
startActivity(activity_pergunta9);
}
}
Ola Jeisih
pq vc nao esta instaciando o objeto Intent
por exemplo
vc naum esta fazendo isso
Intent activity_pergunta1 = new Intent(this, Activity1.class);
Lembrando q Activity1.class é o mesmo Activity1.java
Ah tá......Agora funcionou....Obrigada Andre! :-D
E se eu quisesse que as Activitys sorteassem,mas não repetissem???
=-)
Desde já Agradeço! :-*
opa Jeisih,
faça igual ao exemplo q eu dei p Rodrigo
;-*
Porquê o meu "and" fica dando erro?!
Random gerador = new Random();
int j ;
boolean a = true;
j = gerador.nextInt(3);
if ((j == 1) and (a)) { ///////nessa parte! o_O
startActivity(activity1);
a = false;
desculpa jeisih
coloque assim
no lugar do and coloque &&...