首页 > 解决方案 > android edittext(数字验证)无法从具有 void 结果类型的方法返回值

问题描述

package com.example.crazywriteup.getbmi;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class MaleActivity extends AppCompatActivity
{
    EditText enm,ehgf,ehgi,ewg;
    Button btnmale;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_male);

        enm = (EditText)findViewById(R.id.mleditText);
        ehgf = (EditText)findViewById(R.id.mleditText2);
        ehgi = (EditText)findViewById(R.id.mleditText3);
        ewg = (EditText)findViewById(R.id.mleditText4);
        btnmale = (Button)findViewById(R.id.btnmlsubmit);

        btnmale.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v)
            {
                if(enm.getText().toString().isEmpty())
                {
                    Toast toast = Toast.makeText(getApplicationContext(), "PLS FILL NAME",Toast.LENGTH_SHORT);
                    toast.setGravity(Gravity.TOP|Gravity.CENTER, 0, 0);
                    toast.show();
                }
                else
                {
                    // Nothing
                    ehgf.requestFocus();
                }

            }

        });


        public  boolean isNum(String val)
        {
            boolean check = false;
            String no = "\\d*\\.?\\d+";
            CharSequence inputstr = val;
            Pattern pte = Pattern.compile(no,Pattern.CASE_INSENSITIVE);
            Matcher matcher = pte.matcher(inputstr);
            if(matcher.matches())
            {
                check = true;
            }
            return check;
        }

    }

}

我正在研究 android number textbox () 我想将范围设置为 1 到 7,但我在编写代码时遇到了困难。它总是显示错误cannot return a value from a method with void result type。我是初学者,对编程了解不多。

标签: javaandroid

解决方案


onCreate()方法return void和您正在尝试返回boolean

您需要在isNum()外部创建您的方法onCreate()

示例代码

public class MaleActivity extends AppCompatActivity
{
    EditText enm,ehgf,ehgi,ewg;
    Button btnmale;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_male);

        enm = (EditText)findViewById(R.id.mleditText);
        ehgf = (EditText)findViewById(R.id.mleditText2);
        ehgi = (EditText)findViewById(R.id.mleditText3);
        ewg = (EditText)findViewById(R.id.mleditText4);
        btnmale = (Button)findViewById(R.id.btnmlsubmit);

        btnmale.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v)
            {
                if(enm.getText().toString().isEmpty())
                {
                    Toast toast = Toast.makeText(getApplicationContext(), "PLS FILL NAME",Toast.LENGTH_SHORT);
                    toast.setGravity(Gravity.TOP|Gravity.CENTER, 0, 0);
                    toast.show();
                }
                else
                {
                    // Nothing
                    ehgf.requestFocus();
                }

            }

        });




    }
        public  boolean isNum(String val)
        {
            boolean check = false;
            String no = "\\d*\\.?\\d+";
            CharSequence inputstr = val;
            Pattern pte = Pattern.compile(no,Pattern.CASE_INSENSITIVE);
            Matcher matcher = pte.matcher(inputstr);
            if(matcher.matches())
            {
                check = true;
            }
            return check;
        }

}

推荐阅读