Java EditText.getText().toString()在单击按钮时崩溃
我有以下问题。我想检查我的Java EditText.getText().toString()在单击按钮时崩溃,java,android,string,android-edittext,Java,Android,String,Android Edittext,我有以下问题。我想检查我的编辑文本是否包含按钮上的值/字符串单击。我们开始: private EditText Name; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_register); Name = (EditText)findViewById(R
编辑文本
是否包含按钮上的值/字符串
单击。我们开始:
private EditText Name;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
Name = (EditText)findViewById(R.id.RegisterName);
}
public void RegisterClick(View v)
{
String StrName = Name.getText().toString();
if(StrName != "")
Toast.makeText(null, "Got My String.", Toast.LENGTH_LONG).show();
}
我也把它放进了layout.xml,它不是全部代码
<Button
android:onClick="RegisterClick" />
因此,现在,当我尝试调试时,在我通过要从EditText
设置StrName的序列后,调试器关闭 它在哪里坠毁
我认为这是在这里崩溃:
Toast.makeText(null, "Got My String.", Toast.LENGTH_LONG).show();
不能将null
上下文传递给makeText。
如果您在活动中,请传递它this
,否则(如果您在片段中),请传递getActivity()
另外,在Java中,永远不要使用=
或==
带有字符串,但始终s1.equals(s2)
(在执行空检查之前)您应该使用:
if(StrName != null && StrName.length() > 0)
否则它可能抛出NullPointerException您需要先检查编辑文本是否包含null
if(Name.getText() == null || Name.getText().toString().equals(""))
Toast.makeText(context, "Got My String.", Toast.LENGTH_LONG).show();
试试这个
if(!StrName.equals("") && StrName.length() > 0){
Toast.makeText(getApplicationContext(), "Got My String.", Toast.LENGTH_LONG).show();
}
您应该检查
Name
和StrName
是否为空。MakeText需要一个上下文
,因此它也可能不是null
额外的
if(StrName != "")
不是做你想做的,所以你应该使用
if(StrName.equals(""))
但这当然不会导致崩溃,只是错误的行为。要比较字符串,请在Toast中使用equals()方法,而不是null pass cotext:-
if(StrName.equals(""))
Toast.makeText(getApplicationContext(), "Got My String.", Toast.LENGTH_LONG).show();
您必须使用下面的代码来比较字符串 一, 二,
它与什么相撞?请给我Stacktrace。此外,不要与
==
/进行字符串比较=
,使用.equals()
——但请记住字符串也有.isEmpty()
。这里的答案太多了,但有趣的是,他们中的许多人都将null作为Toast:D的上下文传递。。。。评估你自己的答案。
if(StrName.Matches(""))
Toast.makeText(getApplicationContext(), "Got My String.", Toast.LENGTH_LONG).show();
if(StrName.compareToIgnoreCase(string))
Toast.makeText(getApplicationContext(), "Got My String.", Toast.LENGTH_LONG).show();