изменить цвет текста TextView, когда строка выбрана в Table Layout Android

У меня есть макет таблицы, и в каждой строке у меня есть два текстовых представления. я хочу изменить цвет текста textview при выборе строки. Я также использую селектор xml в цвете текста textview, но цвет не меняется при выборе строки. Вот 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();
                            }
                });

person user3835770    schedule 11.02.2015    source источник
comment
поместите сюда также свой код compiletimeerror.com/2014/03 /   -  person Md Hussain    schedule 11.02.2015


Ответы (1)


Добавьте Text_selector xml в свой проект в каталоге res/color, а затем обратитесь к TextView как

андроид: textColor="@color/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;
            }
        });

дайте мне знать что-нибудь, кроме этого.

person Madhukar    schedule 11.02.2015
comment
цвет изменяется при выборе текста, но я хочу изменить цвет текста при выборе строки, как в списке. когда вы выбираете список, цвет текста изменяется, когда список выделен - person user3835770; 11.02.2015
comment
Вы пробовали использовать setOnTouchListener для строки таблицы? В событии онтач получите текстовое представление и измените его цвет. - person Madhukar; 11.02.2015
comment
я использую эту функцию, но цвет меняется при выборе текстового просмотра - person user3835770; 11.02.2015
comment
Пожалуйста, проверьте ссылки: stackoverflow.com/questions/12065366/ stackoverflow.com/questions/4468380/ - person Madhukar; 11.02.2015
comment
да, цвет меняется, когда выбрано текстовое представление, но я хочу выбрать строку, а не только текстовое представление - person user3835770; 12.02.2015
comment
Вы не добавили код строки/макета таблицы. Пожалуйста, проверьте ссылку stackoverflow.com/questions/4075356/ и stackoverflow.com/questions/11348703/ - person Madhukar; 12.02.2015