cuốn sách gpt4 ai đã làm

android - 在 Android 的 ListView 中为每个项目设置标签?

In lại Tác giả: Taklimakan 更新时间:2023-11-02 22:39:05 27 4
mua khóa gpt4 Nike

我有一个 ListView,我希望每个项目都附有一个 ID 号(与位置号不同)。我希望这可以通过在创建这些 View 时使用 setTag() 为 ListView 中的每个 View 项设置一个标签来完成。

现在我正在这样创建 ListView:

    final ListView listview = (ListView) findViewById(R.id.listView1);
ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, android.R.id.text1, names);
listview.setAdapter(adapter);

上面 ArrayAdapter 参数中的 names 变量是一个 ArrayList,这个列表中的每个字符串值也有一个唯一的 ID,我想以某种方式链接到这个字符串。

有什么方法可以使用标签访问和修改每个 View ?一个想法是创建我自己的 ArrayAdapter 扩展类并覆盖 getView() 方法,但我并不真正理解它是如何工作的以及我将如何着手这样做。

或者是否有更好的方法将 ID 与每个字符串链接起来,而不是像我正在尝试的那样添加标签?

câu trả lời hay nhất

Tạo một ViewBinder 并设置标签,因为 ListView 正在填充您需要的任何内容。您可以检查 View 的所有属性以确定标记的位置,因此这应该是您要查找的内容。

myAdapter.setViewBinder(new MyViewBinder());

lớp công khai MyViewBinder triển khai ViewBinder {
@Ghi đè
public boolean setViewValue(View view, Object data, String text){
// Vì nó lặp qua tất cả các chế độ xem của mục nên hãy thay đổi tương ứng
if(xem instanceof TextView){
((TextView)view).setTag("bất cứ điều gì bạn muốn");
}
}
}

Tôi vừa sử dụng chính xác câu trả lời này (mặc dù hơi khác một chút) cho một câu hỏi khác ngày hôm qua.

Giới thiệu về android - Đặt nhãn cho từng mục trong ListView của Android? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/10644142/

27 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress