0

我有一个表格布局,每行都有两个textview。我想在选中该行时更改textview的文本颜色。我也使用文本视图的文本颜色选择器xml,但选择该行时颜色不变。 这里是XML当在表格布局中选择行时,更改TextView的文本颜色Android

<TableRow 

     android:id="@+id/row1" 
     android:onClick="rowClick" 
     android:focusable="true" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"   
     android:background="@drawable/selector" //this selector is use for row when its selected 

     > 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:background="@drawable/textline" 
      android:orientation="horizontal" > 

      <TextView 
       android:id="@+id/username1" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="User Name " 
       android:textColor="@drawable/text_selector"  
       android:gravity="left|center" 
       android:textSize="16dip" 

       /> 

      <TextView 
       android:id="@+id/userName" 
       android:layout_width="86dp" 
       android:layout_height="match_parent" 
       android:layout_weight="0.27" 
       android:gravity="right|center" 
       android:freezesText="true" 
       android:text="" 
       android:textSize="16dip" 
       android:textColor="#c4c0A3" /> 
     </LinearLayout> 

     </TableRow> 

Text_selector XML

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_focused="true" android:state_pressed="false" android:color="#ffffff" /> 
    <item android:state_focused="true" android:state_pressed="true" android:color="#ffffff" /> 
    <item android:state_focused="false" android:state_pressed="true" android:color="#ffffff" /> 
    <item android:color="#000000" /> 
</selector> 

这里是代码

row1.setOnClickListener(new OnClickListener() 
     {         
      public void onClick(View v) 
      { 

final EditText m_objText = (EditText) promptsView.findViewById(R.id.username_pref); 

     AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context); 
     alertDialogBuilder.setTitle(sTitle); 
     alertDialogBuilder.setView(promptsView); 

     // set dialog message 
     alertDialogBuilder 
       .setCancelable(false) 
       .setPositiveButton("OK", 
         new DialogInterface.OnClickListener() 
       { 
          public void onClick(DialogInterface dialog, int id) 
          { 
           objRowTextView.setText(m_objText.getText()); 
           HideKeyboard(); 

          } 
       }) 
       .setNegativeButton("Cancel", 
         new DialogInterface.OnClickListener() 
       { 
          public void onClick(DialogInterface dialog, int id) 
          { 
           HideKeyboard(); 
           dialog.cancel(); 
          } 
       }); 
+0

把你的代码也放在这里也http://www.compiletimeerror.com/2014/03/android-button-selector-tutorial-with.html – 2015-02-11 05:36:59

回答

0

在项目中添加Text_selector XML RES /彩色目录下然后从TextView中引用作为

机器人:文字颜色=“@颜色/ Text_selector”

希望你可以在代码中通过不同的操作设置不同的颜色做相同。

TextView text1 = (TextView) view.findViewById(R.id.textview); 
text1.setOnTouchListener(new OnTouchListener() { 
@Override 
      public boolean onTouch(View v, MotionEvent event) { 
       switch (event.getAction()) { 
       case MotionEvent.ACTION_DOWN: 
       text1.setTextColor(Color.parseColor("#6DC066")); 
       text1.setBackgroundColor(Color.parseColor("#FFFFFF")); 
        break; 
       case MotionEvent.ACTION_UP: 
        v.performClick(); 
        break;} 
       return true; 
      } 
     }); 

让我知道除此之外的任何事情。

+0

当文本被选中时颜色发生变化,但是我想改变文本选择行时的颜色就像列表视图一样。当你选择列表时,当列表被突出显示时,文本颜色被改变。 – user3835770 2015-02-11 06:34:38

+0

你是否尝试过** setOnTouchListener **表格行?在ontouch事件中,获取textview并更改其颜色。 – Madhukar 2015-02-11 06:43:47

+0

PLZ给我举一些例子来解决这个问题 – user3835770 2015-02-11 06:52:45

相关问题