Textview.setText не работает
Я получил следующую проблему:
у меня есть метод, который запрашивает обновление с сервера websocket:
public Playlist(Activity a) {
this.activity = a;
activity.setContentView(R.layout.player);
KMC.c.send("MyPlayer::CurrentSongList('ID,ArtistName,Title,AlbumName')");
}
Результат успешно получен следующей функцией:
public void UpdateCPL(JSONArray jArray) {
TextView TVti = (TextView) this.activity.findViewById(R.id.title);
TextView TVar = (TextView) this.activity.findViewById(R.id.artist);
TextView TVal = (TextView) this.activity.findViewById(R.id.album);
ImageView IV = (ImageView) this.activity.findViewById(R.id.imageView1);
Log.d("KMC.updateCPL", TVti.toString());
try { //Get the first item - not part of the listview
JSONObject jObject = jArray.getJSONObject(0);
String title = jObject.getString("Title");
Log.d("KMC.updateCPL", title); //works
TVti.setText(title); //does not work
TVar.setText(jObject.getString("ArtistName"));
TVal.setText(jObject.getString("AlbumName"));
IV.setImageResource(R.drawable.noimage);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ListView LV = (ListView) this.activity.findViewById(R.id.listView1);
LV.setAdapter(new listAdapter(this.activity, jArray));
}
Мой макет:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:id="@+id/relativeLayout1"
android:layout_width="fill_parent" android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<TextView android:textAppearance="?android:textAppearanceLarge"
android:id="@+id/title" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_toRightOf="@+id/imageView1"
android:text="@string/hello" android:layout_alignTop="@+id/imageView1"
android:layout_alignParentRight="true" />
<TextView android:textAppearance="?android:textAppearanceSmall"
android:id="@+id/artist" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_below="@+id/title"
android:layout_alignLeft="@+id/title" android:layout_alignParentRight="true" />
<TextView android:textAppearance="?android:textAppearanceSmall"
android:id="@+id/album" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_below="@+id/artist"
android:layout_alignLeft="@+id/artist" />
<ListView android:id="@+id/listView1" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_below="@+id/imageView1"
android:layout_alignParentLeft="true" android:layout_alignParentBottom="true" />
<ImageView android:id="@+id/imageView1" android:layout_width="90.0dip"
android:layout_height="90.0dip" android:layout_marginLeft="5.0dip"
android:layout_marginTop="5.0dip" android:layout_marginRight="5.0dip"
android:layout_marginBottom="5.0dip" android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" />
</RelativeLayout>
Однако, хотя я могу записать результат, TVti.setText(title); не работает, так как текст не отображается.
Кто-нибудь понял, в чем проблема?
РЕДАКТИРОВАТЬ: Забудьте об этом, это не проблема. Проблема в том, что метод UpdateCPL не вызывался из основного потока.
2 ответа
Когда это случалось со мной в прошлом, это было потому, что цвет текста был таким же, как цвет фона. Вы можете попробовать установить цвет текста и / или фоновый цвет, чтобы увидеть, если он появляется:
TVti.setTextColor(Color.RED);
TVti.setBackgroundColor(Color.WHITE);
Пожалуйста, разместите макет, тогда будет легко найти решение
согласно коду
String title = jObject.getString("Title");
Log.d("KMC.updateCPL", title); //works
TVti.setText(title); //does not work
в заголовке есть какое-то значение, это означает, что оно должно отображаться правильно, пожалуйста, проверьте, присвоив название исполнителю и наоборот.