Android - 如何检查EditText是否为空并禁用Button?

时间:2016-08-29 07:47:12

标签: java android android-fragments button

我正在使用Android应用程序,大部分是在教程和阅读材料的帮助下,我的应用程序有点基础,进行一些计算并将结果显示给用户

我有什么

我创建了一个由this tutorial引导的片段,我刚用自己的EditText和Button替换了按钮和textview

我有一个EditText,一个Button和一个TextView,这些是用户在打开片段时看到的小部件

我的目标

我希望用户在EditText中输入值,当他/她单击按钮时,TextView会显示一些计算结果

我做了什么

我一直在尝试herehereherehere的其他答案,但我不知道如何连线代码,每次我写一些代码片段我的应用程序崩溃,我不知道还能做什么

这是我的代码

public class Circle_Perimeter extends Fragment
{
    EditText edtxt;
    Button btn;
    TextView txt;

    public static Circle_Perimeter newInstance()
    {
        Circle_Perimeter fragment = new Circle_Perimeter();
        return fragment;
    }

    public Circle_Perimeter()
    {
    }

    @Override
    public View onCreateView(LayoutInflater inflater,
                             ViewGroup container,
                             Bundle savedInstanceState)
    {
        View rootView = inflater.inflate(R.layout.fragment_circle__perimeter,container,false);

        edtxt = (EditText)rootView.findViewById(R.id.editText);
        btn = (Button)rootView.findViewById(R.id.button6);
        txt = (TextView) rootView.findViewById(R.id.textView6);

        btn.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View view)
            {

            }
        });

        return rootView;
    }
}

问题

如何以及在何处编写必要的代码以使EditText发送Toast警告用户EditText为空?如果EditText为空,则禁用Button?

编辑:真的吗?一个downvote?而不是低估...只是发出警告或其他东西

编辑2:我已经说过,我确实按照here的其他答案进行了操作,而我无法使我的代码正常工作,这就是为什么我在这里寻找答案的原因一段代码

3 个答案:

答案 0 :(得分:1)

要通知EditText中的文字更改,您需要使用TextWatcher。 请查看此文档https://developer.android.com/reference/android/text/TextWatcher.html

public class Circle_Perimeter extends Fragment
{
    EditText edtxt;
    Button btn;
    TextView txt;

    public static Circle_Perimeter newInstance()
    {
        Circle_Perimeter fragment = new Circle_Perimeter();
        return fragment;
    }

    public Circle_Perimeter()
    {
    }

    @Override
    public View onCreateView(LayoutInflater inflater,
                             ViewGroup container,
                             Bundle savedInstanceState)
    {
        View rootView = inflater.inflate(R.layout.fragment_circle__perimeter,container,false);

        edtxt = (EditText)rootView.findViewById(R.id.editText);
        btn = (Button)rootView.findViewById(R.id.button6);
        txt = (TextView) rootView.findViewById(R.id.textView6);

        //Initially set it as disabled
        btn.setEnabled(false);

        //Add textWatcher to notify the user
        edtxt.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                //Before user enters the text
            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                //On user changes the text
                if(s.toString().trim().length()==0) {
                    btn.setEnabled(false);
                    Toast.makeText(getActivity(), "Text can not be empty..",
                            Toast.LENGTH_SHORT).show();
                } else {
                    btn.setEnabled(true);
                }
            }

            @Override
            public void afterTextChanged(Editable s) {
                //After user is done entering the text

            }
        });

        btn.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View view)
            {
                //do your final job here
            }
        });

        return rootView;
    }
}

答案 1 :(得分:0)

检查编辑文本是否为空

很简单
if{edittext.getText == null){}

if(editText.isEmpty){}

最好的方法是制作按钮

button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if(edittext != null){
//do what u want for no empty button
}else{
//block ur button}

                }
            });

答案 2 :(得分:0)

您可以使用EditText捆绑的null API检查TextUtilsAndroid个实例

if(!TextUtils.isEmpty(editText) {
    //Do your desired work
}else {
    //Notify user for rectification
}

要使用按钮,您可以使用其中任何一个:

  • button.setVisibility(VIEW.GONE)
  • button.setEnabled(false)