Java android中显示toast消息的问题
根据我在android中的要求,如果用户只按“空格”并单击“发布”按钮,则应该显示祝酒词。 我有下面的代码,但是祝酒词没有显示出来。 有人能告诉我为什么不显示吗Java android中显示toast消息的问题,java,android,button,toast,Java,Android,Button,Toast,根据我在android中的要求,如果用户只按“空格”并单击“发布”按钮,则应该显示祝酒词。 我有下面的代码,但是祝酒词没有显示出来。 有人能告诉我为什么不显示吗 mEditText.addTextChangedListener(mTextEditorWatcher); Button button = (Button) findViewById(R.id.button1); button.setOnClickListener(new View.OnClickListener(
mEditText.addTextChangedListener(mTextEditorWatcher);
Button button = (Button) findViewById(R.id.button1);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
String result =mEditText.getText().toString();
if(result.contains ("\\s"))
Toast.makeText(getApplicationContext(), "Space ", Toast.LENGTH_LONG).show();
}
});
}
我不认为你会得到最好的结果,试试这个:
if(result.equals(" "))
Toast.makeText(getApplicationContext(), "Space ", Toast.LENGTH_LONG).show();
看起来您正在尝试将正则表达式与
String.contains
方法一起使用。
String.contains
方法与String
一起使用。它不适用于regex
有关更多详细信息,请参见此问题:
顺便说一下,
您不应该只检查一个空格。您应该处理任意数量的空格
if(result.length()!=0 && result.trim().equals(""))
ShowToast();
试试这个
if(result.contains (" "))
Toast.makeText(getApplicationContext(), "Space ", Toast.LENGTH_LONG).show();
你有两种解决办法 1.您应该通过“-->”if(result.contains(“\s”)检查此条件 例如:
if(result.contains(" "))
String result =ed.getText().toString();
Pattern pattern = Pattern.compile("\\s");
Matcher matcher = pattern.matcher(result);
boolean found = matcher.find();
if(found)
Toast.makeText(getApplicationContext(), "Space ", Toast.LENGTH_LONG).show();
2.你应该检查一下图案
例如:
if(result.contains(" "))
String result =ed.getText().toString();
Pattern pattern = Pattern.compile("\\s");
Matcher matcher = pattern.matcher(result);
boolean found = matcher.find();
if(found)
Toast.makeText(getApplicationContext(), "Space ", Toast.LENGTH_LONG).show();
请使用这些解决方案中的任何一种。它都会起作用。我将if条件更改为space,并成功收到一条Toast消息
public class MainActivity extends Activity implements OnClickListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button) findViewById(R.id.Button1);
final EditText mEditText = (EditText) findViewById(R.id.EditText1);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
String result =mEditText.getText().toString();
Log.e("Test Message", result);
if(result.contains (" "))
Toast.makeText(getApplicationContext(), "Space ", Toast.LENGTH_LONG).show();
}
});
}
请尝试让我知道,如果你仍然面临这个问题
谢谢记录“结果”并在语句显示完整代码之前检查其中的内容此代码只处理一个空格。理想情况下,您应该处理任意数量的空白字符。这一步不错,但如果EditText为空,它仍将显示toast,据我所知,@DD希望在编辑文本中只输入空格时显示它。谢谢,它可以工作:)@VikramSingh,但是文本后面的空格不会被修剪。Vikram singh的答案的DD只适用于一个空格。但是,你将使用我的第二个解决方案,它将为每个空间显示toast。Vikram singh的解决方案将使用一个空间和多个空间。trim()将删除开头和结尾处的所有空格。我想如果这次进入“阿伦·库马尔”也会举杯。但是,现在只有我能理解完整的要求。对不起,维克拉姆·辛格