【问题标题】:Hightlight the ListView row when a contained UI element of row is touched触摸行的容器 UI 元素时突出显示 ListView 行
【发布时间】:2011-05-16 12:20:26
【问题描述】:

我想启用在触摸 listView 行时出现的橙色突出显示。

如果onclick事件是从行本身生成的,我可以通过设置listview的样式来调整hightlight。但是在我的情况下,点击事件是由下面的 TextView 生成的,并附加了 onclick 事件。

当触摸事件发生时,Listview 不知道点击正在发生。它不接收焦点或按下事件。

是否有像 Flex 那样可以使用的冒泡或捕获技术?或者有什么建议/解决方案?

非常感谢。

【问题讨论】:

    标签: android events listview onclick highlighting


    【解决方案1】:
    View tempView = null;  // Class Variable to temporary store Clicked Row's view
    

    方法:

     public void onItemClick(AdapterView parent, View v, int position,long id)
    {
        listView.setFocusable(true);
        listView.setSelected(true);
        v.setBackgroundColor(Color.LTGRAY); // CHANGE COLOR OF SELECTED ROW HERE>
        selectedId = (int)id;
    
        if(tempView != null){
            //If row is already clicked then reset its color to default row color
            tempView.setBackgroundColor(Color.TRANSPARENT);
    
        }
        tempView = v;
    

    }

    希望这会有所帮助。谢谢:)

    【讨论】:

    • 感谢补充。一旦我遇到同样的问题并找到自己的解决方案,就与社区分享..
    • 亲爱的 Piyushnp,感谢您的帮助....我也面临同样的问题。我正在使用 BaseAdapter 为 Listview 充气。在 Listview 内,它们是 3 个小部件 Textview、Edittext 和 Edittext,这三个小部件都在一行中。当我单击任何一行时,一些亮点(颜色必须显示在所有三个小部件上)。为了向用户显示您已经选择了这一行,当他点击其他行时,之前的颜色变为正常,下一个选定的行变为颜色。上面我试过了,但我的要求不满足。
    猜你喜欢
    • 1970-01-01
    • 2011-08-09
    • 2014-10-15
    • 2014-02-03
    • 2011-05-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-25
    • 2012-01-22
    相关资源
    最近更新 更多