ich eine benutzerdefinierte Textview-Klasse mit diesem Code haben:Android - auf einen Wert von Textview zu einem benutzerdefinierten Textview
public CustomTextView extends TextView {
public CustomTextView(Context c, AttributeSet a) {
super(c, a);
TextView tv = (TextView) findViewById(R.id.myTv);
String str = tv.getText().toString();
setText(str);
}
}
Und mein main.xml enthält diese:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/myTv"
android:text="Unkown" />
<com.test.CustomTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="100.0sp" />
Was ich will do will ich den String-Wert der TextView (mit ID von myTv) bekommen und den Text meiner CustomTextView genauso einstellen wie die TextView. So etwas wie TextView = CustomTextView.
Der Zeichenfolgenwert von myTv wird durch eine gemeinsame Einstellung geändert, so dass sich der benutzerdefinierte Text bei jedem Textwechsel ändert.
Mein Problem ist, wie man das richtig macht?
Legen Sie eine ID in Ihrer benutzerdefinierten Ansicht fest und aktualisieren Sie sie jedes Mal, wenn sich Ihre Datenmenge ändert? Fast identisch mit der Aktualisierung Ihrer Textansicht. Wenn Sie einen Text-Listener möchten, lesen Sie die Android [TextWatcher] (https://developer.android.com/reference/android/text/TextWatcher.html) -Klasse. – MeetTitan
Ja, das ist möglich, aber was ich will, ist, dass ich die Aktivität dort belasse, wo die Textansicht ist. Ich möchte, dass die benutzerdefinierte Textansicht den Job ausführt und sich jedes Mal ändert, wenn die Textansicht geändert wird. –
Schau in den Link am Ende meines Kommentars und sieh, dass ich deine Gedanken gelesen habe. 'yourTextView.addTextChangedListener (new TextWatcher() {...});' – MeetTitan