Yüklü bir ListView var. Veri kaynağının içeriğini kontrol ettim ve geçerli veriler içeriyor. Ne yazık ki, satır sayısı doğru, ancak görüntülemek istediğim metin görünmüyor. İşte Listemde görünmeyen metin ListView
ben ListView kuruyorum nasıl:<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:padding="6dip">
<LinearLayout
android:orientation="vertical"
android:layout_width="0dip"
android:layout_weight="1"
android:layout_height="fill_parent">
<TextView
android:id="@+id/toptext"
android:layout_width="fill_parent"
android:layout_weight="1"
android:gravity="center_vertical" android:layout_height="0dip" android:singleLine="true" android:textSize="15sp" android:textStyle="bold" android:ellipsize="end" android:shadowColor="#000000" android:shadowDy="1.0" android:shadowRadius="1.0" android:textColor="#FFFFFF"/>
<TextView
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1"
android:id="@+id/bottomtext"
android:singleLine="true"
android:ellipsize="marquee"
android:textSize="15sp" android:shadowColor="#000000" android:shadowDy="1.0" android:shadowRadius="1.0" android:textColor="#FFFFFF"/>
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/dateText" android:shadowColor="#000000" android:shadowDy="1.0" android:shadowRadius="1.0" android:textColor="#E2E2E2"></TextView></LinearLayout>
</LinearLayout>
: Burada
private class StreamAdapter extends ArrayAdapter<STMessage> {
private ArrayList<STMessage> messages;
public StreamAdapter(Context context, int textViewResourceId, ArrayList<STMessage> messages) {
super(context, textViewResourceId, messages);
this.messages = messages;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.streamactivityrow, null);
}
STMessage aMessage = messages.get(position);
if (aMessage != null) {
TextView titleText = (TextView) v.findViewById(R.id.toptext);
TextView descriptionText = (TextView) v.findViewById(R.id.bottomtext);
if (titleText != null) {
titleText.setText(aMessage.getBody());
}
if (descriptionText != null) {
descriptionText.setText(aMessage.getFor_user_login());
}
}
return v;
}
}
listedeki her satır için XML'dir: Burada
private void setupUI() {
setContentView(R.layout.streamactivity);
this.streamListView = (ListView) findViewById(R.id.streamListView);
this.streamAdapter = new StreamAdapter(this, R.layout.streamactivityrow, messages);
streamListView.setAdapter(this.streamAdapter);
}
benim Adaptör olduğunu
ListView ile StreamActivity için XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ListView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/streamListView"></ListView>
</LinearLayout>
getView kodunuza bazı girişler (örn. Log.d ("tag", ...)) eklemeyi deneyin. A) Görüntülemelerinizin doğru bir şekilde bulunmasını sağlayın ve b) aMessage.getFor_user_login() öğesinin aslında sizin düşündüğünüz şeyi geri getirdiğinden emin olun. Ayrıca, maskeleme hataları olabilecek bir sürü boş çek var - getMon içinde null olmak için aMessage, titleText veya descriptionText için geçerli bir neden var mı? Bu özel çekleri kaldırırsan ne olur? LinearLayout android değiştirdiğimde bile –