Ich habe Probleme, mein Layout in Echtzeit auf meiner Anwendung zu aktualisieren.ANDROID: Änderung meines Layouts in Echtzeit
Ich möchte einen ersten Bildschirm mit einer Schaltfläche "Daten laden" zeigen. Wenn ich die Taste drücke, möchte ich den Text in "Loading ..." ändern und eine Fortschrittsanzeige erscheinen lassen, während die App die Daten lädt. Wenn es fertig ist, möchte ich den Text wieder in "App starten" ändern und den Fortschrittsbalken deaktivieren.
Das Problem, das ich habe ist, dass der Text in der Schaltfläche nicht funktioniert refrech und die Progressiv-Bar wird nicht angezeigt ...
ich viele Dinge ausprobiert habe, mit und ohne Gewinde, auf der Suche nach Hilfe im Internet, aber ich konnte keinen passenden Tipp finden.
Vielleicht hast du eine Idee, mir zu helfen? : D
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button=(Button)findViewById(R.id.button);
button.setOnClickListener(this);
button.setText("Load Data");
findViewById(R.id.progressBar).setVisibility(View.INVISIBLE);
}
private void appInit() {
try {
((MyApp) getApplication()).getDataFromServer();
} catch (InterruptedException e) {
e.printStackTrace();
}
((MyApp) getApplication()).initData();
}
@Override
public void onClick(final View v) {
Button b = (Button)v;
String buttonText = b.getText().toString();
if(buttonText=="Load Data"){
findViewById(R.id.progressBar).setVisibility(View.VISIBLE);
button.setText("Loading");
appInit();
while(!((MyApp)this.getApplication()).isInitSucceded()){}
button.setText("Launch App");
findViewById(R.id.progressBar).setVisibility(View.INVISIBLE);
findViewById(R.id.button).setVisibility(View.VISIBLE);
}
else {
Intent intent = new Intent(MainActivity.this, ddcorp.test.Resume.class);
startActivity(intent);
}
}
Sie benötigen, um zu erfahren [AsyncTasks] (http://developer.android.com/reference/android/os/AsyncTask.html) - Sie dienen dazu, Ihnen beim Ausführen von Hintergrundaufgaben (wie der appInit-Methode) zu helfen und die Benutzeroberfläche auf einfache Weise zu aktualisieren. – adelphus
Sie können das mit Hilfe von AsyncTask tun - siehe zum Beispiel http://StackOverflow.com/questions/16275913/show-progress-dialog-while-loading-data – hilzj
2016 und immer noch mit AsyncTask ist traurig. Gehen Sie für RxAndroid, es ist ein bisschen schwierig zu starten, aber nachdem es einfach ist und viel viel mächtiger als AsyncTask. – Leonardo