在XML中设置Button视图的背景使按钮不可单击

时间:2010-11-07 18:41:10

标签: java android xml button android-activity

我的XML文件中定义了一个按钮。按钮的工作方式与您期望的完全一样......直到我在底部添加行(android:background =“drawable / leftarrow1”)。然后按钮在活动中不再可点击,但新背景显示为我想要的。

是什么给出了?

<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");
    }
});

2 个答案:

答案 0 :(得分:2)

我的工作完全正常。每次点击都会被记录下来。

我的猜测是您使用实体图像文件(.png,.jpeg)作为背景。如果你只是使用这样的图像,它在点击或选择时永远不会改变。为此,描述了here状态列表drawable。

在该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");
            }
        });
    }
}

您可以更轻松地识别事件,因为祝酒信息是一种更直观的反馈。

答案 1 :(得分:0)

嘿伙计用于显示带图像的按钮,有一个ImageButton可用。 在xml文件中试试这个。