如何创建按钮单击事件并确保只有当我单击按钮时它才会执行某些操作?

时间:2015-07-30 21:57:05

标签: android

在MainActivity.java中,我将其更改为:

<Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Check Ip"
        android:id="@+id/button"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true"/>

更改为abstract并添加了实现OnClickListener。

现在我想为按钮添加事件点击。 这是布局中的按钮设置。

public abstract class MainActivity extends ActionBarActivity implements OnClickListener
{
    private static final int MY_DATA_CHECK_CODE = 0;
    public static MainActivity currentActivity;
    TextToSpeech mTts;
    private String targetURL;
    private String urlParameters;
    private Button btnClick;
    private String clicking = "clicked";

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setContentView(new SingleTouchEventView(this, null));

        btnClick = (Button) findViewById(R.id.checkipbutton);
        btnClick.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view)
            {
                clicking = "clicked";
            }
        });

当我点击按钮区域而不是屏幕然后点击按钮时,我想这样做。

当我完成所有操作后,所有设置按钮都不可见,也不能点击,如果我现在点击按钮所在的位置,它就像我触摸屏幕一样。

这是我到目前为止所尝试的。 在设计器中添加了一个按钮,将按钮的ID更改为checkforip。

然后在MainActivity.java中我做了:

SELECT t1.Id, 
       IFNULL(t2.Flag, t1.Flag) Flag, 
       IFNULL(t2.Location_Code,t1.Location_Code) Location_Code 
FROM   Table1 t1
       LEFT JOIN Table2 t2 ON t1.Id = t2.Id

首先,抽象是错误的,我猜也是在使用调试模式运行程序时,它甚至都没有通过摘要并关闭程序。

其次我希望按钮点击事件处理程序可以在onCreate上独立使用。

2 个答案:

答案 0 :(得分:0)

您的活动中的第一个获取按钮:

Button btn = (Button) findViewById(R.id.button);

其次,单击按钮时听:

button.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                    // add here what you want to do when button is clicked.
                } 
}); 

第三,如果你想让按钮消失,那么在onClick

中添加这一行
button.setVisibility(View.GONE);

答案 1 :(得分:0)

首先,不需要将类定义为抽象,您应该删除它并删除侦听器的实现。

相反,android中的所有视图都有一个属性,它是onClick,您可以定义如下:

<Button 
 ......

 android:onClick="onBtnClick"
 \>

之后,在java文件中定义一个显示此布局的方法,如下所示:

 @override
  Public void onBtnClick (View v){
//to make it unclickable
 v.setClickable (false);
//to hide it 
 v.setVisibility (View.GONE);

 }