Hallo,
Ich bin neu hier und hoffe, dass ich hier das richtige Forum gefunden habe.
Ich habe folgendes Problem:
Wir programmieren in der Schule eine Streaming App mit Chat, wobei ich hauptsächlich für den Chat Client zuständig bin. Dieser wird in Java für Android programmiert.
So weit so gut, es funktioniert auch alles technisch so weit, jedoch habe ich einen Loginbutton der nach dem erfolgreichen Login seinen Text auf "Logout" ändern soll und bei erneutem klicken wieder auf "Login".
Die Logik hinter dem Button funktioniert.
Ich setzte am anfang den Button auf den Text "Login", das funktioniert noch, aber wenn ich den Text dann später verändern will, bekomme ich keinen Fehler aber der Text auf dem Button wird nicht geändert.
Wenn ich mir nach dem Ändern des Textes mit
den Text hole wird auch der richtige Text zurückgegeben. Aber er wird eben nicht angezeigt.
Ich habe jetzt einiges Gegoogelt aber irgendwie nichts wirklich hilfreiches gefunden, es wäre mega nett wenn mir jemand helfen könnte!
Danke schonmal im vorraus.
Liebe Grüße
P.S.: Ich hänge hier mal die meiner Meinung nach wichtigen Teile des Codes an, wenn das zu wenig oder das falsche ist, einfach Bescheid sagen.
Ich bin neu hier und hoffe, dass ich hier das richtige Forum gefunden habe.
Ich habe folgendes Problem:
Wir programmieren in der Schule eine Streaming App mit Chat, wobei ich hauptsächlich für den Chat Client zuständig bin. Dieser wird in Java für Android programmiert.
So weit so gut, es funktioniert auch alles technisch so weit, jedoch habe ich einen Loginbutton der nach dem erfolgreichen Login seinen Text auf "Logout" ändern soll und bei erneutem klicken wieder auf "Login".
Die Logik hinter dem Button funktioniert.
Ich setzte am anfang den Button auf den Text "Login", das funktioniert noch, aber wenn ich den Text dann später verändern will, bekomme ich keinen Fehler aber der Text auf dem Button wird nicht geändert.
Wenn ich mir nach dem Ändern des Textes mit
Code:
loginButton.getText();
Ich habe jetzt einiges Gegoogelt aber irgendwie nichts wirklich hilfreiches gefunden, es wäre mega nett wenn mir jemand helfen könnte!
Danke schonmal im vorraus.
Liebe Grüße
P.S.: Ich hänge hier mal die meiner Meinung nach wichtigen Teile des Codes an, wenn das zu wenig oder das falsche ist, einfach Bescheid sagen.
Code:
public class MainActivity extends AppCompatActivity { private ChatFragment chat; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); getSupportFragmentManager() .beginTransaction() .add(R.id.chatfragment, chat = new ChatFragment()) .commit(); VerbindungManagement.getThread().start(); } public void loginPressed(View v){ chat.loginButtonPressed(v); } //[...] }
Code:
public class ChatFragment extends Fragment { private Button loginButton; //[...] @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { super.onCreateView(inflater, container, savedInstanceState); View view = inflater.inflate(R.layout.chat_fragment, container, false); loginButton = (Button) view.findViewById(R.id.id_buttonLogin); this.setLoginButtonText("Login"); //[...] return view; } //[...] //Aufgerufen durch Klick auf loginButton public void loginButtonPressed(View view){ //Prüft ob man schon eingelogt ist oder nicht if(VerbindungManagement.getAuthKey().isEmpty()) { //noch nicht eingelogt this.showLoginDialog(); } else { //schon eingelogt VerbindungManagement.setAuthKey(""); this.setLoginButtonText("Login"); } } //[...] public void setLoginButtonText(String new_text){ getActivity().runOnUiThread(new Runnable() { @Override public void run() { loginButton.setText(new_text); } }); } }
Code:
public class VerbindungManagement{ //[...] private static ChatFragment chat; //[...] private static Thread thread = new Thread(){ public void run(){ //[...] switch (jsonIn.getString("Typ")) { case "Auth": authKey = jsonIn.getString("AuthKey"); if (!authKey.isEmpty()) { chat.setLoginButtonText("Logout"); } break; //[...] } //[...] } }; //[...] public static Thread getThread(){ return thread; } public static void setChatinstance(ChatFragment chatfrag){ chat = chatfrag; } }
Comment