0

我执行此代码是为了使按钮本身消失。但它根本不起作用:

againbtn.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        againbtn.setVisibility(View.GONE);
    }
});

更新:我的againbtn在活动加载时是不可见的,在我的代码中,在另一个按钮点击中,我使用以下代码使其可见:

//answer button off animation
Animation anim2 = AnimationUtils.loadAnimation(MainActivity.this, R.anim.askbtnoffanim);
anim2.setFillAfter(true);
askbtn.startAnimation(anim2);

如您所见,我没有使用againbtn.setVisibility(View.VISIBLE);或其他东西。动画本身出现按钮。你认为我的问题与此有关吗?我尝试做另一个动画来消失按钮本身,它可以工作但仍然clicklistener适用于他位置区域的这个按钮!

为什么?

4

2 回答 2

0

检查您导入的类,导入以下类:

导入 android.view.View.OnClickListener;

代替:

导入 android.content.DialogInterface.OnClickListener;

我在这里给出了完整的代码,你可以使用它:

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {
    Button b;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        b = (Button) findViewById(R.id.button1);
        b.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                b.setVisibility(View.GONE);
            }
        });

    }
}

这是activity_main.xml:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:text="Button" />

    </RelativeLayout>
于 2013-03-29T06:26:30.007 回答
0

尝试这个

againbtn.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
  runOnUiThread(new Runnable()
        {
            @Override
            public void run() 
            {
                againbtn.setVisibility(View.GONE);
            }
        });
}

});

于 2013-03-29T06:00:08.123 回答