在特定时间内突出显示android中列表视图的列表项

时间:2014-07-23 08:07:32

标签: android listview colors highlighting

在我的Android应用程序中,我有一个列表视图和其中的一些项目,现在我的要求是当我从该列表中选择一个特定项目时,列表项应该用红色突出显示,并且该选择不应该是消失,因为在我的应用程序中我应该从列表视图中选择一个项目,我应该单击一个按钮(提交)。

因此,为了向用户了解他已从列表视图中选择了一个项目,应该突出显示该项目,直到他单击“提交”按钮。 我已经使用了选择模式属性并将值设置为单选,我已经更改颜色以突出显示一切正常但我需要它不会消失直到用户单击提交按钮 变量val由我从数据库中检索的一些名称组成。 请帮我解决这个问题,提前谢谢。

ArrayAdapter<String> adptr= new ArrayAdapter<String>(this,R.layout.row,R.id.member_name,array);
lv.setAdapter(adptr);
lv.setOnItemClickListener(new OnItemClickListener(){
    @Override
    public void onItemClick(AdapterView<?> parent, View v, int pos,
            long id) {
        // TODO Auto-generated method stub
        val=lv.getItemAtPosition(pos).toString();
        //Toast.makeText(getApplicationContext(), val, 5000).show();
    }
});

2 个答案:

答案 0 :(得分:0)

use OnItemClickListener
   ListView lview = getListView();
   int pos =0;
   lview.setOnItemClickListener(new OnItemClickListener()
   {
      @Override
      public void onItemClick(AdapterView<?> adapter, View v, int position,
            long arg3) 
      {
           // set the background of v here 
           if (position == pos)
           // reset the background color
           // and pos = position;
           else 
             get the previous listitem view and reset it's background to original
             }
   }); 

答案 1 :(得分:0)

实际上我有时会遇到同样的问题。我正在研究谷歌电视的非触摸andorid ui应用程序。 解决方案是这样的。

1)创建一个自定义ArrayAdapter(扩展ArrayAdapter)

2)onItemClick获取项目的位置。

3)通过一些公共方法将该位置发送到适配器,例如setCurrentPosition(int pos)

4)在适配器的getView()中检查位置并将该背景的背景设置为红色。

希望这会对我有用。