0

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

我使用以下文本视图:

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

这是这些文本视图的背景:

 <?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>

在这里,如果我必须单击这些文本视图,则意味着及时显示背景。

但我希望需要输出 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

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

4

2 回答 2

3

在选择另一个 TextView 使用时在代码中动态更改它

yourTextView.setBackgroundDrawable(getResources().getDrawable(R.drawable.best_deal_bg));

如果你想删除背景使用

yourTextView.setBackground(null);
于 2013-07-11T04:21:19.900 回答
1

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

textview.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                if(v != lastclickedview) {
                    v.setBackground("new color");
                    lastclickedview.setBackground("default");
                }
                //your Action
                lastclickedview = v;
            }
        });
于 2013-07-11T04:27:15.603 回答