Ich habe ein Problem mit dem Festlegen von Text in einer Textansicht:
TextView Android:editable = "true".
In meiner .Java scheint das so zu funktionieren:
text = (EditText) findViewById(R.id.this_is_the_id_of_textview);
text.setText("TEST");
Aber es tut nicht Kann mir jemand sagen, was hier los ist?
Setzen Sie in Ihrer Java-Klasse den Typ "EditText
" auf "TextView
". Weil Sie eine TextView
in der layout.xml
-Datei deklariert haben
Der Code sollte stattdessen so aussehen:
TextView text = (TextView) findViewById(R.id.this_is_the_id_of_textview);
text.setText("test");
Verwenden Sie den folgenden Code ....__, um in einer der Aktivitäten aktiv zu werden. Folgen Sie diesen Schritten nacheinander:
1.Deklare
private TextView event_post;
2.Binden Sie dies
event_post = (TextView) findViewById(R.id.text_post);
3.SetText in
event_post.setText(event_post_count);
Versuchen Sie es so:
TextView text=(TextView)findViewById(R.id.textviewID);
text.setText("Text");
An Stelle von:
text = (EditText) findViewById(R.id.this_is_the_id_of_textview);
text.setText("TEST");
Ich hatte ein ähnliches Problem, mein Programm stürzte jedoch ab, als ich versuchte, den Text festzulegen. Ich habe versucht, den Textwert innerhalb einer Klasse festzulegen, die AsyncTask erweitert, und genau das verursachte das Problem.
Um das Problem zu beheben, habe ich meinen setText in die onPostExecute-Methode verschoben
protected void onPostExecute(Void result) {
super.onPostExecute(result);
TextView text = (TextView) findViewById(R.id.errorsToday);
text.setText("new string value");
}
Oder Sie können dies auf folgende Weise tun:
((TextView)findViewById(R.id.this_is_the_id_of_textview)).setText("Test");
Sie legen den Text auf ein Feld fest, das in einer anderen Instanz Ihrer Aktivität in bar gerendert wurde, z. B. wenn es landschaftsorientiert war. Dann wurde es aus irgendeinem Grund neu erstellt. Sie müssen den Text auf ungewöhnliche Weise festlegen, indem Sie die Zeichenfolge in SharedPreferences speichern und die Aktivität mit recreate () neu starten, beispielsweise für mOutputText:
@Override
protected void onResume() {
super.onResume();
String sLcl=mPreferences.getString("response","");
if(!sLcl.isEmpty()){
mOutputText.setText(sLcl);
mPreferences.edit().putString("response","").commit();
}
}
private void changeText() {
mPreferences.edit().putString("response",responseText).commit();
recreate();
}
@Override
protected void onActivityResult(
int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case CAPTURE_MEDIA_RESULT_CODE:
if (null == data || null == data.getData()) {
showMessage("Sorry. You didn't save any video");
} else {
videoUri = data.getData();
mProgress = new ProgressDialog(this);
mProgress.setMessage("Uploading onYoutube ...");
authorizeIt();// SAY YOU CALL THE changeText() at the end of this method
}
break;
}
}
In Ihrem XML-Dokument hatten Sie Textview verwendet. In Java-Code hatten Sie jedoch EditText anstelle von TextView verwendet. Wenn Sie es in TextView ändern, können Sie Text auf Ihr TextView-Objekt setzen.
text = (TextView) findViewById(R.id.this_is_the_id_of_textview);
text.setText("TEST");
hoffe es wird klappen.