gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:39:05 27 4
gpt4 key购买 nike

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

现在我正在这样创建 ListView:

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

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

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

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

最佳答案

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

myAdapter.setViewBinder(new MyViewBinder());

public class MyViewBinder implements ViewBinder {
@Override
public boolean setViewValue(View view, Object data, String text){
//Since it iterates through all the views of the item, change accordingly
if(view instanceof TextView){
((TextView)view).setTag("whatever you want");
}
}
}

昨天我刚刚在另一个问题上使用了这个完全相同的答案(尽管略有不同)。

关于android - 在 Android 的 ListView 中为每个项目设置标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10644142/

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