为了账号安全,请及时绑定邮箱和手机立即绑定

在 ListView 中滚动会丢失文本颜色和字体

在 ListView 中滚动会丢失文本颜色和字体

慕田峪4524236 2021-09-03 13:47:43
我不确定为什么它不起作用,但我的代码应该做的很简单。我有一个在 getView() 中声明的带有默认文本颜色 (BLACK) 和字体 (MONOSPACE) 的 ListView,因此在创建视图时一切正常。当我从列表中选择一个项目时,它应该将文本颜色更改为 RED,将字体更改为 MONOSPACE 和 BOLD,如果我单击另一个项目,它将将该项目更改为 RED 和 BOLD,并将之前的文本返回到 BLACK 和 NORMAL。这工作得很好,但如果我从红色和粗体文本滚动直到它不可见,然后向后滚动,文本不再是红色和粗体,而是黑色和正常。非常感谢帮助!谢谢private ArrayList<String> list;private ListView myView;private ListAdapter listAdapter;protected void onCreate(@Nullable Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_list);    list = new ArrayList<>();    for (int i = 0; i < 20; i++) {        list.add("Hello world " + i);    }    listAdapter = new ListAdapter();    myView = (ListView) findViewById(R.id.myList);    myView.setAdapter(listAdapter);    myView.setOnItemClickListener(new  AdapterView.OnItemClickListener() {        @Override        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {            TextView tv = (TextView) view.findViewById(R.id.textView);            tv.setTextColor(Color.RED);            tv.setTypeface(Typeface.MONOSPACE, Typeface.BOLD);        }    });}public class ListAdapter extends BaseAdapter {    @Override    public View getView(int i, View view, ViewGroup viewGroup) {        view = getLayoutInflater().inflate(R.layout.listview_layout, null);        TextView txt = (TextView) view.findViewById(R.id.textView);        txt.setText(list.get(i));        txt.setTextColor(Color.BLACK);        txt.setTypeface(Typeface.MONOSPACE, Typeface.NORMAL);        return view;    }}
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 175 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信