>

Fórum

Fórum da RL System, voltado para analistas, programadores etc. Tudo sobre linguagem de programação e desenvolvimento Full Stack: Banco de Dados, Android, C#, Java, .NET, PHP, Node, Javascript, TypeScript, Front, HTML e muito mais.



Sortear Activitys


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?



13 Respostas


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 &&...