Skip to main content

Android: Selector isn"t working as expected in TableRow selection



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.





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" />







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);

}







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 ?





Thanks





Any help is appreciated.


Comments

  1. As I understand, you have to change the selector. I have found the recipes here

    ReplyDelete

Post a Comment

Popular posts from this blog

Slow Android emulator

I have a 2.67 GHz Celeron processor, 1.21 GB of RAM on a x86 Windows XP Professional machine. My understanding is that the Android emulator should start fairly quickly on such a machine, but for me it does not. I have followed all instructions in setting up the IDE, SDKs, JDKs and such and have had some success in staring the emulator quickly but is very particulary. How can I, if possible, fix this problem?

CCNA 3 Final Exam => latest version

1 . Which security protocol or measure would provide the greatest protection for a wireless LAN? WPA2 cloaking SSIDs shared WEP key MAC address filtering   2 . Refer to the exhibit. All trunk links are operational and all VLANs are allowed on all trunk links. An ARP request is sent by computer 5. Which device or devices will receive this message? only computer 4 computer 3 and RTR-A computer 4 and RTR-A computer 1, computer 2, computer 4, and RTR-A computer 1, computer 2, computer 3, computer 4, and RTR-A all of the computers and the router   3 . Refer to the exhibit. Hosts A and B, connected to hub HB1, attempt to transmit a frame at the same time but a collision occurs. Which hosts will receive the collision jamming signal? only hosts A and B only hosts A, B, and C only hosts A, B, C, and D only hosts A, B, C, and E   4 . Refer to the exhibit. Router RA receives a packet with a source address of 192.168.1.65 and a destination address of 192.168.1.161...