Android zur Laufzeit den Text im Menü ändern

  • Themenstarter Themenstarter Gast2
  • Beginndatum Beginndatum
G

Gast2

Gast
Hallo!

Ich habe ein Menü geschrieben
und will aber zur Laufzeit den Text ändern.

Hier die menu.xml:[XML]<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/values_visibility" android:title="@string/txt_mnu_value_visibility" />
<item android:id="@+id/shout_down" android:title="@string/txt_mnu_shout_down" />
</menu>[/XML]

In MainActivity.java will ich gerne den Text ändern:
Java:
	@Override
	public boolean onOptionsItemSelected(MenuItem item){
		switch(item.getItemId()){
		case R.id.values_visibility:
			valuesOnOff();
			return true;
		case R.id.shout_down:
			shoutDown();
			return true;
		default:
			return super.onOptionsItemSelected(item);
		}		
	}

Ich möchte mich auf dei Methode valuesOnOff(); (im Java Code Zeile 5) konzentrieren.
In dieser Methode lasse ich ein Textfeld (der activity_main.xml) ein und ausblenden.
Wenn das Textfeld (mit den Values) eingeblendet ist, so soll der Nutzer im Menü den Eintrag "Werte ausblenden" finden und wenn die Werte ausgeblendet sind dann soll im Menp "Werte einblenden" stehen.
Java:
	private void valuesOnOff() {
		if (valueUnVisible) {
			txv_values.setVisibility(View.VISIBLE);
			valueUnVisible = false;
//			btn_valuesOnOff.setText("Messwerte ausblenden"); // geht gar nicht
		} else {
			txv_values.setVisibility(View.GONE);
//			btn_valuesOnOff.setText("Messwerte einblenden"); // geht gar nicht
			valueUnVisible = true;			
		}
	}

Ich habe schon vergeblich versucht values_visibility (siehe id im xml) zu definieren als Button, Item, View. Aber alles scheint falsch zu sein.

Aber wie komme ich an den Text ran? Hilfe!
Frank
 
Hi Schlingel,

dieses Thread hatte ich mir auch schon angeschaut
und damit (erfolglos) rumprobiert.

Aber es ist wirklich die Lösung,
(mittlerer / zweiter Codeblock).

Ich war nur nicht konsequent genug im abtippen / kopieren. 😉
 

Neue Themen


Zurück
Oben