如何从ListView精确获取listitem?

时间:2017-11-09 16:35:17

标签: java android listview android-arrayadapter listitem

我已经设置了一个列表视图,其中ListItems由ArrayAdapter填充。还要设置一个OnClickListener()来接收任何listitem的点击,如下所示:

private TextView prev = null;

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

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {

            if(prev != null)
            {
                prev.setTypeface(null, Typeface.NORMAL);
            }

            TextView textView = listView.getChildAt(i).findViewById(R.id.drawertext);
// drawertext is ID of text inside list items
            prev = textView;
            textView.setTypeface(null, Typeface.BOLD);;
        }
    });

目标是将点击的项目的字体更改为粗体,并恢复之前选择的项目的字体(为此目的使用 prev )。 问题是,当用户点击一个项目以及该列表项时,其他一些列表项的字体也会发生变化。

我认为原因可能是'滑动窗口'概念,因为适配器回收了listview的视图......不确定。无论如何,如何防止这种情况,而是在点击时唯一地识别每个列表项。

0 个答案:

没有答案