0

次の問題があります。クリックEditText時に値/文字列が含まれているかどうかを確認したい。Buttonどうぞ:

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" />

そのため、デバッグしようとすると、 から StrName を設定するシーケンスを渡した後、デバッガーが閉じますEditText

4

7 に答える 7

7

どこでクラッシュしていますか?

ここでクラッシュしていると思います:

Toast.makeText(null, "Got My String.", Toast.LENGTH_LONG).show();

nullコンテキストを makeText に渡すことはできません。アクティビティにいる場合は、それthis以外の場合 (フラグメントにある場合) を渡します。getActivity()

また、Java では、文字列に対して!=orを使用することは決してありませんが、常に(そして null チェックを行う前に)==s1.equals(s2)

于 2013-06-28T09:20:09.477 に答える
1

文字列を比較するには、以下のコードを使用する必要があります

1.

if(StrName.Matches(""))
 Toast.makeText(getApplicationContext(), "Got My String.", Toast.LENGTH_LONG).show();

2.

if(StrName.compareToIgnoreCase(string))
 Toast.makeText(getApplicationContext(), "Got My String.", Toast.LENGTH_LONG).show();
于 2013-06-28T09:32:15.823 に答える
0

使用する必要があります:

if(StrName != null && StrName.length() > 0)

そうしないと、NullPointerException がスローされる可能性があります

于 2013-06-28T09:20:19.613 に答える
0

最初に編集テキストに null が含まれているかどうかを確認する必要があります..

if(Name.getText() == null || Name.getText().toString().equals(""))
     Toast.makeText(context, "Got My String.", Toast.LENGTH_LONG).show();
于 2013-06-28T09:20:19.650 に答える
0

これを試して、

  if(!StrName.equals("") && StrName.length() > 0){
    Toast.makeText(getApplicationContext(), "Got My String.", Toast.LENGTH_LONG).show();
    }
于 2013-06-28T09:21:19.143 に答える
0

それらがnullかどうかをName確認する必要があります。StrNameMakeText には が必要なContextので、どちらでもない可能性がありnullます。

その他

if(StrName != "")

はあなたが思っていることをしていないので、使用する必要があります

if(StrName.equals(""))

もちろん、これはクラッシュを引き起こすわけではなく、間違った動作をするだけです。

于 2013-06-28T09:23:42.560 に答える
0

String を比較するには equals() メソッドを使用し、null の代わりに toast に cotext を渡します:-

 if(StrName.equals(""))
    Toast.makeText(getApplicationContext(), "Got My String.", Toast.LENGTH_LONG).show();
于 2013-06-28T09:23:51.253 に答える