我必须开发一个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
我的代码中有什么内容。请给我解决这些问题???
答案 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;
}
});