使用XML设置按钮视图的背景会使按钮不可点击
我在我的XML文件中定义了一个按钮。按钮的工作方式与您期望的完全相同......直到我在底部添加该行(android:background =“drawable/leftarrow1”)。然后该按钮在活动中不再可点击,但新背景显示为我想要的。使用XML设置按钮视图的背景会使按钮不可点击
什么给?
<Button
android:id="@+id/switch_left"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:background="@drawable/leftarrow1" />
这里是参考
Button switchLeft = (Button) findViewById(R.id.switch_left);
switchLeft.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Log.w(this.getClass().getName(), "clicked left arrow");
}
});
点击代码我工作完全正常。每次点击都会被记录。
我的猜测是你使用一个实体图像文件(.png,.jpeg)作为背景。如果你只是使用这样的图像,它将不会改变点击或选择。为此,可以描述here所描述的状态列表。
在该XML文件中,您可以定义图像以显示特定状态(如选定,单击等)。
另一个提示。如果你想查看按钮的功能,例如使用这种类型的代码。
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class TestButton extends Activity {
Context ctx = null;
Button btn = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.buttonbackground);
ctx = getApplication();
btn = (Button) findViewById(R.id.switch_left);
btn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Toast.makeText(ctx, "Button clicked", 5000).show();
// Log.w(this.getClass().getName(), "clicked left arrow");
}
});
}
}
由于吐司消息是一种更直观的反馈,因此您将更容易识别该事件。
嘿好友显示按钮与图像有一个ImageButton可用。 在xml文件中试试这个。
他想有一个自定义的背景并不在此按钮上的图标。 – 2010-11-07 19:34:01
真正屋大维但是从他的资源˚F ILE看来他最初设定的背景下,因此,我建议相同。 – 2010-11-07 19:41:20
我不能让那个吐司工作...试图getApplicationContext()了。另外,是的,我使用png/jgp作为背景。我是否必须执行所有状态列表drawable才能正常工作? – user432209 2010-11-07 19:53:04
注:我不关心什么按钮的样子,我在乎的代码射击,当我点击它...它不是做:( – user432209 2010-11-07 19:58:36
@ user432209:不,你没有实现状态-list绘制,这只是一个指向一个更优雅的方式来显示背景但它是不相关的问题。我在哪里见过你提到你有保存日志信息的自定义视图您的第二个问题。如果它是请告诉我,让我能回答正确的问题,涉及到它 – 2010-11-07 19:58:45