【问题标题】:Highlighting the list item of a list view in android for a specif time在特定时间突出显示android中列表视图的列表项
【发布时间】:2014-09-14 07:33:20
【问题描述】:

在我的 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();
    }
});

【问题讨论】:

标签: android listview colors highlighting


【解决方案1】:

实际上,我曾经有过同样的问题。我正在为 google tv 开发非触摸式 andorid ui 应用程序。 解决办法是这样的。

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

2) onItemClick 获取item的位置。

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

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

希望这对我有用。

【讨论】:

    【解决方案2】:
    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
                 }
       }); 
    

    【讨论】:

    • 这里能不能写getView函数
    猜你喜欢
    • 2012-11-21
    • 2016-01-25
    • 1970-01-01
    • 1970-01-01
    • 2014-01-14
    • 1970-01-01
    • 2012-09-26
    • 2012-06-10
    • 2013-09-04
    相关资源
    最近更新 更多