在表格布局Android中选择行时,更改TextView的文本颜色

时间:2015-02-11 05:28:37

标签: android xml android-layout textview android-tablelayout

我有一个表格布局,每行我都有两个textview。我想在选择行时更改textview的文本颜色。我还在textview的文本颜色中使用选择器xml,但选择行时颜色不会改变。 这是xml

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

1 个答案:

答案 0 :(得分:0)

在项目的res / color目录下添加Text_selector xml,然后从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;
            }
        });

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