我试图找出用户是否在编辑文本中添加了某些内容。 它有效,但当我不输入任何它不会显示; “请输入你的名字”。 也试过null而不是“”或“”不起作用。
任何帮助?
package com.grumbledorf.Hellotraining;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class main extends Activity {
EditText etName;
Button btMake;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
etName = (EditText) findViewById(R.id.etName);
btMake = (Button) findViewById(R.id.btPress);
final Context context = getApplicationContext();
final int duration = Toast.LENGTH_SHORT;
btMake.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if(etName.getText().toString() == " "){
Toast toast = Toast.makeText(context, "Please enter your name", duration);
toast.show();
}else{
String Henk = etName.getText().toString();
Toast toast = Toast.makeText(context, "Welcome, " + Henk, duration);
toast.show();
}
}
});
}
}
答案 0 :(得分:2)
也许我弄错了,但为什么你认为默认输入是" "
尝试使用if(etName.getText().equals(""))
答案 1 :(得分:1)
试试这个:etName.getText()。toString()。equals(“”)
在java中,比较String值时,需要使用.equals(..)方法。比较两个对象的引用时,只有==
答案 2 :(得分:0)
Lars,而不是:
etName.getText().toString() == " ";
使用:
etName.getText().toString().length() == 0;
答案 3 :(得分:0)
etName.getText().toString() == " "
该代码不起作用。 “”实际上创建了一个新的String并比较了内存地址。那么内存地址也不一样,因为它是一个不同的对象。使用
etName.getText().toString().equals("")