如果已执行,则禁用一个按钮

时间:2014-10-31 17:11:45

标签: android button popup buttonclick

通过按Button,我写了一些行来弹出表单。现在我试图停用Button如果它被按下,那么它将不再打开。

这是主要活动文件:

package com.javacodegeeks.android.fragmentstest;

import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.PopupWindow;
import android.widget.Toast;
import android.annotation.SuppressLint;
import android.app.ActionBar.LayoutParams;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.content.Context;
import android.content.DialogInterface;


@SuppressLint("InflateParams")
public class MainActivity extends Activity implements OnClickListener  {

    ImageView mButton1;
    Context contex;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);

      setContentView(R.layout.activity_main);

      mButton1 = (ImageView) findViewById(R.id.button1);
      mButton1.setOnClickListener(new OnClickListener() {

           @SuppressWarnings("null")
        public void onClick(View arg0) {
            LayoutInflater layoutInflater 
             = (LayoutInflater)getBaseContext()
              .getSystemService(LAYOUT_INFLATER_SERVICE);  
            View popupView = layoutInflater.inflate(R.layout.popupform, null);  
                     final PopupWindow popupWindow = new PopupWindow(
                       popupView, 
                       LayoutParams.WRAP_CONTENT,  
                             LayoutParams.WRAP_CONTENT);  

                    Button btnbutton1 = (Button)popupView.findViewById(R.id.login);

                    btnbutton1.setOnClickListener(new Button.OnClickListener(){

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


                   popupWindow.showAsDropDown(btnbutton1, 50, 250);

            }
      });

    }

我们在这里做一个说明,这是代码的一部分,因此在此之后还有更多。但我坚持这一部分!!!

2 个答案:

答案 0 :(得分:1)

禁用它......

mButton1.setOnClickListener(new OnClickListener() {

       @SuppressWarnings("null")
    public void onClick(View arg0) {
        mButton1.setEnabled(false);
        // your other code

如果您以后将此代码用于其他View

,您也可以在Views上设置它
public void onClick(View arg0) {  
        arg0.setEnabled(false);
        // your other code

如果您想重新启用它,只需覆盖弹出窗口中的onDismiss()并启用Button

@Override
public void onDismiss() {
    mButton1 .setEnabled(true);

Docs for setEnabled()

Docs for onDismiss()

我还会考虑将参数更改为有意义的内容。而不是默认arg0使用vview

 View popupView = layoutInflater.inflate(R.layout.popupform, null);  
                 final PopupWindow popupWindow = new PopupWindow(
                   popupView, 
                   LayoutParams.WRAP_CONTENT,  
                         LayoutParams.WRAP_CONTENT);
popupWindow.setOnDismissListener(new PopupWindow.DismissListener
{
    @Overide
    public void onDismiss() {
         mButton1 .setEnabled(true);
    }
});

答案 1 :(得分:0)

您只需执行button.setEnabled(false);即可停用该按钮。你应该尝试这种方法。为表单打开时设置一个布尔值,如果为true,则禁用该按钮。