无法单击ImageButton

时间:2013-10-16 19:43:35

标签: java android imagebutton

我在main_view.xml中有以下布局,其中包含ImageButton,当我点击/触摸按钮时按钮ButtonListener函数永远不会被调用。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/relativeLayoutFragment"
android:layout_width="match_parent"
android:layout_height="fill_parent" >

<fragment
    android:id="@+id/mapArea"
    android:name="com.google.android.gms.maps.MapFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
</fragment>

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/locate"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="10dp"
        android:background="#80000000"
        android:gravity="center"
        android:padding="10dp"
        android:text="@string/findingLocation"
        android:textColor="#FFFFFF"
        android:textSize="12sp" />

    <ImageButton
        android:id="@+id/Button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_marginBottom="@dimen/rightLeftMargin"
        android:layout_marginLeft="@dimen/rightLeftMargin"
        android:background="@null"
        android:clickable="true"
        android:contentDescription="@string/button1text"
        android:src="@drawable/ic_feed_active" />

    <ImageButton
        android:id="@+id/Button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="@dimen/rightLeftMargin"
        android:background="@null"
        android:contentDescription="@string/button2"
        android:src="@drawable/ic_button2" />

    <ImageButton
        android:id="@+id/Button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_marginBottom="@dimen/rightLeftMargin"
        android:layout_marginRight="@dimen/rightLeftMargin"
        android:background="@null"
        android:contentDescription="@string/button3View"
        android:src="@drawable/ic_settings_active" />
</RelativeLayout>

并在MainActivity.Java中执行以下代码 公共类MainActivity扩展了Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    User usrObj = new User();
    if (usrObj.authenticateUser())
        setContentView(R.layout.main_view);
    else
        setContentView(R.layout.login);
}

public void ButtonListener() {

    ImageButton oggleButton = (ImageButton) findViewById(R.id.Button1);

    ToggleButton.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {

            Toast.makeText(MainActivity.this, "ImageButton is clicked!",
                    Toast.LENGTH_SHORT).show();

        }

    });

}
}

请帮忙。

2 个答案:

答案 0 :(得分:1)

ButtonListener为真时,您忘记调用usrObj.authenticateUser()方法。这样做:

if (usrObj.authenticateUser())
   {
        setContentView(R.layout.main_view);
        ButtonListener ();  << call here
   }
    else
        setContentView(R.layout.login);

并将setOnClickListener附加到oggleButton而不是ToggleButton

答案 1 :(得分:1)

除了来自ρяσѕρєяK的上述建议之外,还有一件事需要注意。

而不是以下代码。

oggleButton.setOnClickListener(new OnClickListener() {

使用这个

oggleButton.setOnClickListener(new View.OnClickListener() { // use View.oncli......