2012-10-03 42 views
0

我有一个TableLayout,我想要里面的元素(每个表行中有一个文本视图)要集中ontouch。我将每个元素的可聚焦属性设置为true,但它不起作用!焦点表行不工作

这是XML:

<?xml version="1.0" encoding="UTF-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:layout_gravity="bottom" 
android:focusable="true" 
android:focusableInTouchMode="true" 
android:gravity="right" > 


<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentTop="true" 
    android:background="#444444" 
    android:focusable="true" 
    android:focusableInTouchMode="true" 
    android:gravity="bottom" 
    android:orientation="vertical" > 

    <TableLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:focusable="true" 
     android:focusableInTouchMode="true" > 

     <requestFocus /> 


     <TableRow 
      android:id="@+id/tableRow1" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:background="#993399" 
      android:clickable="true" 
      android:focusable="true" 
      android:focusableInTouchMode="true" > 





      <TextView 
       android:id="@+id/textView1" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_marginRight="5dip" 
       android:layout_weight="1" 
       android:clickable="true" 
       android:editable="false" 
       android:focusable="true" 
       android:focusableInTouchMode="true" 
       android:gravity="right" 
       android:text="Zein" 
       android:textAppearance="?android:attr/textAppearanceMedium" /> 

     </TableRow> 

     <TableRow 
      android:id="@+id/tableRow2" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:focusable="true" 
      android:focusableInTouchMode="true" > 

      <TextView 
       android:id="@+id/textView2" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_weight="1" 
       android:focusable="true" 
       android:focusableInTouchMode="true" 
       android:text="Home" 
       android:textAppearance="?android:attr/textAppearanceMedium" /> 
     </TableRow> 

     <TableRow 
      android:id="@+id/tableRow3" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:focusable="true" 
      android:focusableInTouchMode="true" > 

      <TextView 
       android:id="@+id/textView3" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_weight="1" 
       android:focusable="true" 
       android:focusableInTouchMode="true" 
       android:text="About us" 
       android:textAppearance="?android:attr/textAppearanceMedium" /> 
     </TableRow> 

     <TableRow 
      android:id="@+id/tableRow4" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:background="#00FF00" 
      android:focusable="true" 
      android:focusableInTouchMode="true" > 

      <TextView 
       android:id="@+id/textView4" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_weight="1" 
       android:focusable="true" 
       android:focusableInTouchMode="true" 
       android:gravity="right" 
       android:text="Students" 
       android:textAppearance="?android:attr/textAppearanceMedium" /> 
     </TableRow> 

     <TableRow 
      android:id="@+id/tableRow5" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:focusable="true" 
      android:focusableInTouchMode="true" > 

      <TextView 
       android:id="@+id/textView5" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_marginRight="5dip" 
       android:layout_weight="1" 
       android:focusable="true" 
       android:focusableInTouchMode="true" 
       android:gravity="left" 
       android:text="Course Scheduele" 
       android:textAppearance="?android:attr/textAppearanceMedium" /> 
     </TableRow> 

     <TableRow 
      android:id="@+id/tableRow6" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:focusable="true" 
      android:focusableInTouchMode="true" > 

      <TextView 
       android:id="@+id/textView6" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_marginRight="5dip" 
       android:layout_weight="1" 
       android:focusable="true" 
       android:focusableInTouchMode="true" 
       android:gravity="left" 
       android:text="Exam Scheduele" 
       android:textAppearance="?android:attr/textAppearanceMedium" /> 
     </TableRow> 

     <TableRow 
      android:id="@+id/tableRow7" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:focusable="true" 
      android:focusableInTouchMode="true" > 

      <TextView 
       android:id="@+id/textView7" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_weight="1" 
       android:focusable="true" 
       android:focusableInTouchMode="true" 
       android:text="Exam Grades" 
       android:textAppearance="?android:attr/textAppearanceMedium" /> 
     </TableRow> 

     <TableRow 
      android:id="@+id/tableRow8" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:focusable="true" 
      android:focusableInTouchMode="true" > 

      <TextView 
       android:id="@+id/textView8" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_weight="1" 
       android:focusable="true" 
       android:focusableInTouchMode="true" 
       android:text="Course Grades" 
       android:textAppearance="?android:attr/textAppearanceMedium" /> 
     </TableRow> 

     <TableRow 
      android:id="@+id/tableRow9" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:focusable="true" 
      android:focusableInTouchMode="true" > 

      <TextView 
       android:id="@+id/textView9" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_weight="1" 
       android:focusable="true" 
       android:focusableInTouchMode="true" 
       android:text="GPA" 
       android:textAppearance="?android:attr/textAppearanceMedium" /> 
     </TableRow> 

     <TableRow 
      android:id="@+id/tableRow10" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:focusable="true" 
      android:focusableInTouchMode="true" > 

      <TextView 
       android:id="@+id/textView10" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_weight="1" 
       android:focusable="true" 
       android:focusableInTouchMode="true" 
       android:text="Drop &amp; Add" 
       android:textAppearance="?android:attr/textAppearanceMedium" /> 
     </TableRow> 

     <TableRow 
      android:id="@+id/tableRow11" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:focusable="true" 
      android:focusableInTouchMode="true" > 

      <TextView 
       android:id="@+id/textView11" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_weight="1" 
       android:focusable="true" 
       android:focusableInTouchMode="true" 
       android:text="Petition Enquiry" 
       android:textAppearance="?android:attr/textAppearanceMedium" /> 
     </TableRow> 

     <TableRow 
      android:id="@+id/tableRow12" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:focusable="true" 
      android:focusableInTouchMode="true" > 

      <TextView 
       android:id="@+id/textView12" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_weight="1" 
       android:background="#00FFFF" 
       android:focusable="true" 
       android:focusableInTouchMode="true" 
       android:gravity="right" 
       android:text="University Services" 
       android:textAppearance="?android:attr/textAppearanceMedium" /> 
     </TableRow> 

     <TableRow 
      android:id="@+id/tableRow13" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:focusable="true" 
      android:focusableInTouchMode="true" > 

      <TextView 
       android:id="@+id/textView13" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_weight="1" 
       android:focusable="true" 
       android:focusableInTouchMode="true" 
       android:text="Petition Enquiry" 
       android:textAppearance="?android:attr/textAppearanceMedium" /> 
     </TableRow> 

     <TableRow 
      android:id="@+id/tableRow14" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:background="#D60024" 
      android:focusable="true" 
      android:focusableInTouchMode="true" > 

      <TextView 
       android:id="@+id/textView14" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_weight="1" 
       android:focusable="true" 
       android:focusableInTouchMode="true" 
       android:gravity="right" 
       android:text="Employees" 
       android:textAppearance="?android:attr/textAppearanceMedium" /> 
     </TableRow> 

     <TableRow 
      android:id="@+id/tableRow15" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:focusable="true" 
      android:focusableInTouchMode="true" > 

      <TextView 
       android:id="@+id/textView15" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_weight="1" 
       android:focusable="true" 
       android:focusableInTouchMode="true" 
       android:text="Petition Enquiry" 
       android:textAppearance="?android:attr/textAppearanceMedium" /> 
     </TableRow> 

     <TableRow 
      android:id="@+id/tableRow16" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:background="#009933" 
      android:focusable="true" 
      android:focusableInTouchMode="true" > 

      <TextView 
       android:id="@+id/textView16" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_marginRight="5dip" 
       android:layout_weight="1" 
       android:focusable="true" 
       android:focusableInTouchMode="true" 
       android:gravity="right" 
       android:text="My Account" 
       android:textAppearance="?android:attr/textAppearanceMedium" /> 
     </TableRow> 

     <TableRow 
      android:id="@+id/tableRow17" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:focusable="true" 
      android:focusableInTouchMode="true" > 

      <TextView 
       android:id="@+id/textView17" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_weight="1" 
       android:focusable="true" 
       android:focusableInTouchMode="true" 
       android:text="Petition Enquiry" 
       android:textAppearance="?android:attr/textAppearanceMedium" /> 
     </TableRow> 
    </TableLayout> 
</LinearLayout> 

我想每一个元素是重点,当用户触摸它, 任何想法,为什么它不工作在这里吗?

绘制/ table.xml

UPDATE:

<?xml version="1.0" encoding="utf-8"?> 
    <selector xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item android:state_pressed="true" 
      android:color="#993399" /> <!-- pressed --> 
    <item android:state_focused="true" 
      android:color="#993399" /> <!-- focused --> 
    <item android:color="#222222" /> <!-- default --> 

</selector> 

这是怎么我指的是我的main.xml内

android:src="@drawable/table1" 

仍然什么也没有发生

回答

0

为你的listview创建选择器TEM,并设置其参数,例如:

<item android:drawable="@drawable/but" android:state_pressed="false" android:state_selected="false"/> 
<item android:drawable="@drawable/butpressed" android:state_pressed="true"/> 
<item android:drawable="@drawable/butpressed" android:state_pressed="false" android:state_selected="true"/> 

在我改变图片的例子,但你可以设置任何其他参数

+0

可以请您详细阐述更多的我真的不太明白你所说的 –

+0

http://stackoverflow.com/questions/1219312/android-selector-text-color 这里是选择器的例子。这个想法是编程按钮的不同状态。您可以对TableLayout字段使用相同的想法 – SVS

+0

org.xmlpull.v1.XmlPullParserException:二进制XML文件行#4:标记需要“drawable”属性或子标记定义可绘制 \t at android.graphics.drawable.StateListDrawable .inflate(StateListDrawable.java:178) –