更改textview背景,直到在android中选择另一个textview

时间:2013-07-11 04:11:12

标签: android selector textview android-adapter

我必须开发一个Android应用程序。

我在textview下面使用了:

    <TextView
    android:id="@+id/deals"
    android:layout_width="wrap_content"
    android:layout_height="50dip"
    android:background="@drawable/best_deal_bg"
    android:text="Deals"
   />

这是textview的背景:

 <?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
 <item android:drawable="@drawable/menu_active" android:state_enabled="true"
      android:state_pressed="true" />
  </selector>

这里。如果我必须点击这些textview意味着tiime ly显示背景。

但我希望输出like.have来显示背景,直到选择另一个textview。

我该怎么办?请给我解决这些???

修改

我在android textview onclik功能上设置了这个背景:

deals = (TextView) findViewById(R.id.deals);
      deals.setOnClickListener(new View.OnClickListener() {
      public void onClick(View arg0) {

       deals.setBackground(getResources().getDrawable(R.drawable.best_deal_bg));
        Intent intent = new Intent(getParent(),Deals.class);
        TabGroupActivity parentActivity = (TabGroupActivity) getParent();
        parentActivity.startChildActivity("BestDeals",intent);
               }
    });

这里得到以下错误:

* 07-11 10:07:50.593:E / AndroidRuntime(816):java.lang.NoSuchMethodError:android.widget.TextView.setBackground *

修改

deals = (TextView) findViewById(R.id.deals);
      deals.setOnClickListener(new View.OnClickListener() {
      public void onClick(View arg0) {
    View lastclickedview=null;
            if(v != lastclickedview) {
             v.setBackground(getResources().getDrawable(R.drawable.best_deal_bg));
                 lastclickedview.setBackground(getResources().getDrawable(R.drawable.message_icon));
         }
        lastclickedview = v;
      Intent intent = new Intent(getParent(),Deals.class);
        TabGroupActivity parentActivity = (TabGroupActivity) getParent();
        parentActivity.startChildActivity("BestDeals",intent);
               }
       });

这里得到以下错误:

E / AndroidRuntime(883):java.lang.NoSuchMethodError:android.view.View.setBackground

我的代码中有什么内容。请给我解决这些问题???

2 个答案:

答案 0 :(得分:3)

在选择另一个TextView使用

时,在代码中动态更改它
yourTextView.setBackgroundDrawable(getResources().getDrawable(R.drawable.best_deal_bg));

如果你想删除后台使用

yourTextView.setBackground(null);

答案 1 :(得分:1)

首先从onclickListener更改textview的背景颜色并创建一个视图对象以保存最后单击的文本视图,在第二次单击texview检查时将最后单击的视图的背景更改为deafault颜色

textview.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                if(v != lastclickedview) {
                    v.setBackground("new color");
                    lastclickedview.setBackground("default");
                }
                //your Action
                lastclickedview = v;
            }
        });