Ich mache eine Art von Spiel mit Android Studio und ich möchte etwas wie heute Spiel Ladebildschirm, in dem erscheint zufälliger Text auf dem Bildschirm erscheint.Random TextView auf dem Bildschirm laden Android
Ich möchte ein TextView setzen 4 Sätze zum Beispiel "Chargin eins" "Chargin zwei" "Chargin drei" und "Chargin vier" Die Idee ist es, eine zeigen, warten 1-2 Sekunden zeigen die nächste und wann alle habe gezeigt, weiter mit anderen Dingen.
Ich habe es versucht, indem Sie einen Thread und TextView Text einstellen, aber ich habe den nächsten Fehler: Der einzige, der TextView ändern kann, ist der Haupt-Thread. Was sollte ich tun?
Dies soll in das Thema sein:
int num = 1;
int aleatorio;
while(num<4) {
Random r = new Random();
aleatorio = r.nextInt(frasesCarga.size() - 1);
fraseCarga.setText(frasesCarga.get(aleatorio));
num++;
frasesCarga.remove(aleatorio);
}
Ich werde die Klasse schreiben, wenn jemand sie braucht.
LoadActivity.class
package es.fingerlabs.gamecohol;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.Random;
public class Jugar extends AppCompatActivity {
private ArrayList<String> frasesCarga;
private TextView fraseCarga;
private int vivo;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_jugar);
fraseCarga = (TextView) findViewById(R.id.tvFraseCargandoJugar);
frasesCarga = new ArrayList<String>();
frasesCarga.add("Preparando Cubatas");
frasesCarga.add("Haciendo hielo");
frasesCarga.add("Mezclando preguntas");
frasesCarga.add("Cogiendo sitio");
frasesCarga.add("Poniendo chupitos");
Thread timerThread = new Thread() {
public void run() {
try {
int num = 1;
int aleatorio;
while(num<4) {
sleep(1000);
Random r = new Random();
aleatorio = r.nextInt(frasesCarga.size() - 1);
fraseCarga.setText(frasesCarga.get(aleatorio));
num++;
frasesCarga.remove(aleatorio);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
timerThread.start();
}
@Override
public void onBackPressed() {
new AlertDialog.Builder(this)
.setIcon(android.R.drawable.ic_dialog_alert)
.setTitle("¿Salir de la partida?")
.setMessage("Si sales se perdera el progreso de la partida")
.setPositiveButton("Si", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
})
.setNegativeButton("No", null)
.show();
}
}
Aber Sie haben diesen Code in onCreate() geschrieben. Wo ist der andere Thread, von dem du sprichst? –
Ich habe den Beitrag bearbeitet den Thread zum besseren Verständnis hinzufügen –