3

こんにちは、私はプログラミングに少し慣れていませんが、テキストビュー (既に参照済み) の横に文字が含まれているかどうかに関係なく、IF ステートメントを作成したいと考えています。たとえば、その文字のみを変更したいと考えています。コードに「1」が含まれるテキストビューはありますか? これは私が持っているものですが、誰かがそれを完成させるのを手伝ってくれますか?

if ("!".contains(stuff.getText()) {
    stuff.setText("Incorrect Symbol");
}else {

}

キーボードを使用して入力できる内容を制御できることは知っていますが、この方法で行う方法を誰かに教えてもらいたいです。ところで、stuff.gettext に小さな赤い線を引き続けているので、問題を教えてもらえますか?

4

5 に答える 5

4

ここには主に次の 2 つの問題があると思います。

  • あなたは構文に少し混乱しています
  • Android は多くの場合、String ではなくテキスト値に CharSequence を使用するため、少し複雑になります。

「もの」が TextView であると仮定すると、次のことができます。

String stuffText = stuff.getText().toString();
if(stuffText.contains("1")) {
    stuff.setText("Incorrect Symbol");
} else {

}

なぜ stuff.getText() で赤い行が表示されるのかわかりませんが、その行には対応するコンパイラ エラーがあり、適切なビューで確認できます (Eclipse のような IDE を使用していると仮定します)。

全体的なデザインに関しては、これは悪い方法です。XML を設定することで、フィールドが受け入れる文字を指定できます。

<EditText xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:inputType="phone|numberSigned"
    android:digits="0123456789" />

本当にフィードバックが必要な場合は、TextWatcherを使用して、ユーザーの入力に応じて応答できるようにすることをお勧めします。

于 2013-02-13T17:12:42.493 に答える
1

できるよ:

if (stuff.getText().contains("!"))

また

if(stuff.getText().indexOf("!") != -1)

指定されたcharが文字列にない場合indexOfに返さ-1れます。

前述のように、indexOfは引数として 1 文字を取るため、文字列に特定の部分文字列が含まれているかどうかを確認するには、 を使用しますcontains

ドキュメントから:

戻り値: このオブジェクトが表す文字シーケンス内で最初に出現する文字のインデックス、または文字が出現しない場合は -1。

于 2013-02-13T17:08:41.070 に答える
1

String.contains("yourCharacter")を使用して、yourCharacter が文字列に存在するかどうかを確認します。

したがって、コードは次のようになります

if (stuff.getText().contains("!")) {
    stuff.setText("Incorrect Symbol"); // your text contains the symbol
}else {
    ..... // your text does not contain the symbol
}
于 2013-02-13T17:05:09.753 に答える
1

「1」だけが含まれているかどうか、つまり、入力されているのが「1」だけかどうかを確認したい場合はequals、contains ではなく を使用します。

stuff.getText()入力されたテキストを返すと仮定します:

if("1".equals(stuff.getText())) {
    // we'll end up here if the only thing in the input is 1
} else {
    // otherwise we'll end up here
}

文字equalsIgnoreCaseの場合、大文字と小文字を区別しない比較に使用します。

入力に文字が含まれていることを確認したい場合はcontains、equals の代わりにメソッドを使用します。

if(stuff.getText().contains("1")) {
    // we end up here if the input text contains 1 somewhere in it
} else {
    // otherwise we'll end up here
}
于 2013-02-13T17:05:30.373 に答える