安卓:选择不工作如预期的TableRow选择 [英] Android: Selector isn't working as expected in TableRow selection

查看:116
本文介绍了安卓:选择不工作如预期的TableRow选择的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个TAbleLayout在我的XML有1行即TE标题行。其他所有的行,我动态添加。我想就点击它与功放选择的行;在接触它。我加clickListener到每一行和我能够捕获click事件。但是,当鼠标pssed或存放pressed $ P $,我看到的颜色变化,然后再涉及到正常的颜色。我想要的颜色留改变,直到我点击其他行或点击其他地方停用选定行。

I have a TAbleLayout in my XML with 1 row i.e. te headings row. Other all rows, I add dynamically. I want to make a row selected on clicking it & on touching it. I added clickListener to each row and am able to trap click event. But when the mouse is pressed or kept pressed, I see color change, then again it comes to normal color. I want the color to stay changed until I click other row or click somewhere else to deactivate the selected row.

我选择XML code:

My selector XML code :

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<!--  Active state -->  
<item android:state_selected="true" android:state_focused="false"
      android:state_pressed="false" android:drawable="@android:color/transparent" />      
<!--  Inactive state-->  
<item android:state_selected="false" android:state_focused="false"
      android:state_pressed="false" android:drawable="@android:color/transparent" /> 
 <!--  Pressed state --> 
 <item android:state_pressed="true" android:drawable="@color/yellow" />

<!--  Selected state (using d-pad) -->  
 <item android:state_focused="true" android:state_selected="true"
       android:state_pressed="false" android:drawable="@color/yellow" />

我的Java code,我动态生成行:

My Java code where I generate rows dynamically :

private void createView(TableRow tr, TextView tv, String data, int rowId) {
    tv.setText(data);

    tv.setTextColor(Color.WHITE);
    tv.setPadding(20, 0, 0, 0);

    tr.setPadding(0, 1, 0, 1);
    //tr.setBackgroundColor(Color.TRANSPARENT);
    tr.setBackgroundDrawable(this.getResources().getDrawable(R.drawable.tablerowselector));
    tr.setId(rowId);
    tr.setClickable(true);
    tr.setFocusable(true); // Added thinking that if its not focusable then it can't be selected, but makes no difference
    tr.setOnClickListener(this);
    tr.addView(tv);
}

如果我在clickListener事件处理,并根据设定的行设置背景颜色 prevRowSelected currRowSelected 逻辑的作品。但是,如何让选择的工作,为什么它不工作?没有选择器可以工作的方式试图实现它?

If I handle in clickListener event, and set Background color of row based on setting prevRowSelected and currRowSelected logic, that works. But how to make selector work and why it is not working ? Can't selector work the way am trying to achieve it ?

感谢

任何帮助是AP preciated。

Any help is appreciated.

推荐答案

友选择,因为我已经不正常工作。所以有它以编程方式使用适当方面的逻辑和设置行的颜色处理。

Friends, selector, doesn't work as I had expected. So have handled it programmatically using apprpriate logic and setting row's color.

感谢所有。

这篇关于安卓:选择不工作如预期的TableRow选择的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆