@staroski
Estou tentando usar um código quase igual ao que você postou e não estou conseguindo
No lugar desse
System.out.println(numero);
Para
aqui.setText ()
Seria o que?
Bom o primeiro resultado
aqui.setText ()
O segundo
aquia.setText()
.
.
.
Seria assim
Bom eu estou tentado colocar seu código e não estou conseguindo você poderia colocar o código mais explicado ?
Bom eu sei que já está bastante explicado kk.
Mas não estou conseguindo.
@staroski
Por enquanto está assim…
Eu sei que esta errado, mas o que eu tenho que mudar.?
public class MainActivity extends Activity {
TextView aqui;
TextView aquia;
TextView aquib;
int quantidade = 20;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public final class NumerosAleatorios {
private final List<Integer> numeros;
public NumerosAleatorios(int quantidade) {
if (quantidade < 1) {
throw new IllegalArgumentException("Não faz sentido sortear " + quantidade + " números");
}
numeros = new LinkedList<>();
for (int numero = 0; numero < quantidade; numero++) {
numeros.add(numero);
}
Collections.shuffle(numeros);
}
public int proximo() {
if (numeros.isEmpty()) {
throw new IllegalStateException("Todos os números já foram sorteados");
}
return numeros.remove(0);
}
}
public void Aleatorio(View view) {
int quantidade = 20;
NumerosAleatorios sorteio = new NumerosAleatorios(quantidade);
for (int i = 0; i < quantidade; i++) {
int numero = sorteio.proximo();
aqui.setText(Integer.toString(numero));
aquia.setText(Integer.toString(numero));
aquib.setText(Integer.toString(numero));
}
}
}
aqui.setText(String.valueOf(sorteio.proximo()));
aquia.setText(String.valueOf(sorteio.proximo()));
aquib.setText(String.valueOf(sorteio.proximo()));
Tem gente que quer desenvolver em android sem saber o básico, ai vai ser díficil… Boa sorte
@staroski
Desculpa por perguntar de novo.
Bom eu acho que esse código pode ser usado em muitas coisa. Por isso que estou tentando aprender.
Bom coloquei esse código …
public class MainActivity extends Activity {
TextView aqui;
TextView aquia;
TextView aquib;
int quantidade = 20;
NumerosAleatorios sorteio = new NumerosAleatorios(quantidade);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public final class NumerosAleatorios {
private final List<Integer> numeros;
public NumerosAleatorios(int quantidade) {
if (quantidade < 1) {
throw new IllegalArgumentException("Não faz sentido sortear " + quantidade + " números");
}
numeros = new LinkedList<>();
for (int numero = 0; numero < quantidade; numero++) {
numeros.add(numero);
}
Collections.shuffle(numeros);
}
public int proximo() {
if (numeros.isEmpty()) {
throw new IllegalStateException("Todos os números já foram sorteados");
}
return numeros.remove(0);
}
}
public void Aleatorio(View view) {
for (int i = 0; i < quantidade; i++) {
int numero = sorteio.proximo();
aqui.setText(String.valueOf(sorteio.proximo()));
aquia.setText(String.valueOf(sorteio.proximo()));
aquib.setText(String.valueOf(sorteio.proximo()));
}
}
}
Ele executa mas na hora que vou apertar o botão ele o aplicativo para …
Você que é mais experiente pode dizer onde estou errando .
Pega a parte que está errada e contra como deveria ficar
@Mike
Eu estou aprendendo aos poucos o básico.
Comecei a pouco tempo.
…
Então não deveria estar no android
Você tem que setar o TextView com base o id que estar no seu arquivo xml
TextView aqui = (TextView)
layout.findViewById(R.id.aqui);// não sei o id
Depois passe o valor
aqui.setText(sorteio.proximo());
@Eduardo_Maranata10
Coloquei
TextView aqui;
TextView aquia;
TextView aquib;
aqui = (TextView)findViewById(R.id.aqui);
aquia = (TextView)findViewById(R.id.aquia);
aquib = (TextView)findViewById(R.id.aquib);
Mas também não deu certo…
Coloca o código do sua activity
@Eduardo_Maranata10
public class MainActivity extends Activity {
TextView aqui;
TextView aquia;
TextView aquib;
int quantidade = 20;
NumerosAleatorios sorteio = new NumerosAleatorios(quantidade);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public final class NumerosAleatorios {
private final List<Integer> numeros;
public NumerosAleatorios(int quantidade) {
if (quantidade < 1) {
throw new IllegalArgumentException("Não faz sentido sortear " + quantidade + " números");
}
numeros = new LinkedList<>();
for (int numero = 0; numero < quantidade; numero++) {
numeros.add(numero);
}
Collections.shuffle(numeros);
}
public int proximo() {
if (numeros.isEmpty()) {
throw new IllegalStateException("Todos os números já foram sorteados");
}
return numeros.remove(0);
}
}
public void Aleatorio(View view) {
aqui = (TextView)findViewById(R.id.aqui);
aquia = (TextView)findViewById(R.id.aquia);
aquib = (TextView)findViewById(R.id.aquib);
for (int i = 0; i < quantidade; i++) {
int numero = sorteio.proximo();
aqui.setText(String.valueOf(sorteio.proximo()));
aquia.setText(String.valueOf(sorteio.proximo()));
aquib.setText(String.valueOf(sorteio.proximo()));
}
}
}
<?xml version="1.0" encoding="utf-8"?><TextView
android:id="@+id/aqui"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="aqui" />
<TextView
android:id="@+id/aquia"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="aquia" />
<TextView
android:id="@+id/aquib"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="aquib" />
<Button
android:id="@+id/button_outratela"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="Aleatório"
android:onClick="Aleatorio" />
Tenta isso
NumerosAleatorios sorteio = new NumerosAleatorios(quantidade);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView aqui = (TextView)findViewById(R.id.aqui);
TextView aquia = (TextView)findViewById(R.id.aquia);
TextView aquib = (TextView)findViewById(R.id.aquib);
aqui.setText(String.valueOf(sorteio.proximo()));
aquia.setText(String.valueOf(sorteio.proximo()));
aquib.setText(String.valueOf(sorteio.proximo()));
}
@Eduardo_Maranata10
Quando tira o
for (int i = 0; i < quantidade; i++) {
Da certo até certa quantidade de vezes que aperta o botão
Por que isso acontece é porque os números ja sairam ?
O certo seria aprender Java antes
Esse for
era só um exemplo de como gerar os 20 números aleatoriamente, sem repetir, você não precisa dele pois você já atribui o numero aleatório diretamente ao seus campos de texto com as seguintes linhas:
aqui.setText(String.valueOf(sorteio.proximo()));
aquia.setText(String.valueOf(sorteio.proximo()));
aquib.setText(String.valueOf(sorteio.proximo()));
Se quer usar laço no seu código, pode fazer algo do tipo:
NumerosAleatorios sorteio = new NumerosAleatorios(quantidade);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView aqui = (TextView)findViewById(R.id.aqui);
TextView aquia = (TextView)findViewById(R.id.aquia);
TextView aquib = (TextView)findViewById(R.id.aquib);
TextView[] todosMeusTextViews = new TextView[] { aqui, aquia, aquib };
for (TextView meuTextView : todosMeusTextViews) {
meuTextView.setText(String.valueOf(sorteio.proximo()));
}
}