简体   繁体   English

如果 editText 为空,如何敬酒消息?

[英]how to toast a message if editText is empty?

I am trying to get a message to appear when a button is clicked to tell the user to fill in the blank field.我试图在单击按钮时显示一条消息,告诉用户填写空白字段。 Currently, if the field is blank, it crashes/force closes the app.目前,如果该字段为空白,它会崩溃/强制关闭应用程序。 the criteria that i need are to have spinners for the Celsius/Fahrenheit options and toast messages if the spinners are both on the same option or if the value is blank我需要的标准是为摄氏度/华氏度选项和 toast 消息设置微调器(如果微调器都在同一选项上或值为空)

Here is the code这是代码

public class MainActivity extends AppCompatActivity {

        private TextView result;
        private EditText enterTemp;
        double result0;

        Spinner ConvertFromUnitTypeSpinner;
        Spinner ConvertToUnitTypeSpinner;


        @Override

    protected void onCreate (Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //set spinner variables

        ConvertFromUnitTypeSpinner = (Spinner) findViewById(R.id.ConvertFromUnitTypeSpinner);
        ConvertToUnitTypeSpinner =  (Spinner) findViewById(R.id.ConvertToUnitTypeSpinner);

        //String for spinner items
        String [] unitTypes =  {"Fahrenheit", "Celsius"};

        //set up adapter for the layout of the spinner
        ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<>(this,      
         android.R.layout.simple_list_item_1, unitTypes);

        //set up adapter to spinner
        ConvertFromUnitTypeSpinner.setAdapter(spinnerAdapter);
        ConvertToUnitTypeSpinner.setAdapter(spinnerAdapter);

        //set up convert button
        Button convert = findViewById(R.id.convert);
        result = findViewById(R.id.result);
        enterTemp = findViewById(R.id.enterTemp);


        convert.setOnClickListener(new View.OnClickListener(){
            @SuppressLint("SetTextI18n")
            @Override
            public void onClick (View v) {
                double temp = Double.parseDouble(enterTemp.getText().toString());

            if(ConvertFromUnitTypeSpinner.getSelectedItem()=="Fahrenheit"&&
             ConvertToUnitTypeSpinner.getSelectedItem().toString()=="Celsius")
                {
                    result0 = (temp - 32 )*5/9;
                    result.setText(String.valueOf(result0));
                }
           if(ConvertFromUnitTypeSpinner.getSelectedItem()=="Celsius"
              &&ConvertToUnitTypeSpinner.getSelectedItem().toString()=="Fahrenheit")
                {
                    result0 = (temp * 9/5) + 32;
                    result.setText(String.valueOf(result0));
                }
            if (ConvertToUnitTypeSpinner.getSelectedItem()
                ==ConvertToUnitTypeSpinner.getSelectedItem()){
                    result.setText("Units are the same!");
                }
                if (enterTemp.getText().toString().length() == 0)
                {
                    Toast.makeText(MainActivity.this, "It's empty", Toast.LENGTH_SHORT).show();
                  }

                }
              });
             }
           }

I tried replacing the code我尝试替换代码

if (enterTemp.getText().toString().length() == 0) {
            Toast.makeText(MainActivity.this, "It's empty", Toast.LENGTH_SHORT).show();
          }

to this对此

if(isEmpty(enterTemp.getText().toString())){
            Toast.makeText(MainActivity.this, "It's empty", Toast.LENGTH_SHORT).show();
         }

also no luck也没有运气

First of all you should check EditText is empty or not and in else part do your conversion:首先,您应该检查 EditText 是否为空,然后在其他部分进行转换:

if (enterTemp.getText().toString().isEmpty())
   {
     Toast.makeText(MainActivity.this, "It's empty", Toast.LENGTH_SHORT).show();
} else {
         if(ConvertFromUnitTypeSpinner.getSelectedItem()=="Fahrenheit"&&
                   
         ConvertToUnitTypeSpinner.getSelectedItem().toString()=="Celsius")
            {
                 result0 = (temp - 32 )*5/9;
                 result.setText(String.valueOf(result0));
            }
            if(ConvertFromUnitTypeSpinner.getSelectedItem()=="Celsius"
                  
          &&ConvertToUnitTypeSpinner.getSelectedItem().toString()=="Fahrenheit")
             {
                  result0 = (temp * 9/5) + 32;
                  result.setText(String.valueOf(result0));
             }
              if (ConvertToUnitTypeSpinner.getSelectedItem()
                        ==ConvertToUnitTypeSpinner.getSelectedItem())
               {
                    result.setText("Units are the same!");
                }
     }

You should use TextUtils to achieve your desired result.您应该使用TextUtils来实现您想要的结果。 Something like:就像是:

import android.text.TextUtils;

if ( TextUtils.isEmpty(enterTemp.getText()) ) {
   // Display the toast
}

Your code will be:您的代码将是:

if(enterTemp.getText().toString().trim().length() == 0 ){
        Toast.makeText(MainActivity.this, "It's empty", Toast.LENGTH_SHORT).show();
     }

Try this->试试这个->

if (enterTemp.getText().toString().equals("")) {
            Toast.makeText(MainActivity.this, "It's empty", Toast.LENGTH_SHORT).show();
        }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM