gpt4 book ai didi

java - 在 ListView 中显示 POJO 对象的多个字段

转载 作者:行者123 更新时间:2023-12-02 13:29:52 24 4
gpt4 key购买 nike

我在 Android 应用程序中有一个 POJO 列表,并且当前正在 ListView /列表项中显示其中一个字段,如下所示:

List<NotificationItem> notifItems;
// snip, populate

ArrayAdapter adapter = new ArrayAdapter<>(this, R.layout.notification_item, notifItems);

ListView listView = (ListView) findViewById(R.id.notification_listview);
listView.setAdapter(adapter);

据我了解,listivew 或适配器使用 POJO 的 toString,即

public String toString() {
SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd hh:mm");
return _notificationTitle + " | " + dateFormatter.format(_notificationReceivedDate);
}

R.id.notificationitem 是

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/label"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dip"
android:textSize="16sp"
android:textStyle="bold"></TextView>

到目前为止一切顺利,但我想要做的是将元素添加到 notificationitem 布局文件,然后更新 Java 代码以填充新字段。

这是如何完成的?我不太明白适配器如何知道/将 toString 值放入通知项中的一个字段中。

最佳答案

public class NotificationItem {
//your fields here
}
//-----------------------
public class NotifAdapter extends BaseAdapter {

Context context;
List<NotificationItem> data;

public NotifAdapter(Context context, List<NotificationItem> data) {
this.context = context;
this.data = data;
}

@Override
public int getCount() {
return data.size();
}

@Override
public Object getItem(int position) {
return data.get(position);
}

@Override
public long getItemId(int position) {
return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = layoutInflater.inflate(R.layout.your_row_layout,parent, null);
TextView tx = convertView.findViewById(R.id.your_widget_inside_row_layout);
tx.setText(data.yourDataPropery);
return convertView;
}
}
// In your activity
NotifAdapter adapter = new NotifAdapter(this, ArrayList<NotificationItem>);
listView.setAdapter(adapter);

关于java - 在 ListView 中显示 POJO 对象的多个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43233628/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com