2016-03-22 7 views
-1

を与えた場合、これらの文字列を検索アンドロイド、私は1つのTextViewと一つのボタンを持つメッセージに私がプロジェクトで開いて新しいプロジェクトを持っている

私は以下のこれらの文字列のいずれかを検索し、見つかった場合は、メッセージを表示したい

ので、人々は上から2のコードを入力してくださいウィル

6A 
6B 
6C 
6D 
7A 
7B 
7C 
7D 
8A 
8B 
8C 
8D 
9A 
9B 
9C 
9D 
0A 
0B 
0C 
0D 

が見つかりません
を発見し、TextViewには、コードと一致した場合には見つから与えます。

Button clickButton = (Button) findViewById(R.id.button); 
     clickButton.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       EditText tvId = (EditText) findViewById(R.id.editText); 
       TextView tvIdd = (TextView) findViewById(R.id.textView2); 
       // TODO Auto-generated method stub 
       if (tvId.equals("6A")){ 
        tvIdd.setText("6a is nor"); 
       } else if (tvId.equals("6B")){ 
        tvIdd.setText("6b is nor"); 
       } else if (tvId.equals("6C")){ 
        tvIdd.setText("6c is nor"); 
       } else if (tvId.equals("6D")){ 
        tvIdd.setText("6d is nor"); 
       } 
      } 
     }); 

答えて

0

あなたは、リストを通過し、最初の数がヒットした場合、最初の文字をチェックし、二文字を確認することができます。 thatsの代わりに「6B」でハードコーディングのヒット、成功

場合は、単にファイルから文字列を取得し、

for(...;...;...)

がどうかを確認する最も簡単な方法

0

ここに有用であることを比較します文字列は、文字列のセットに一致する設定を定義し、含まれているAPIを使用することです:

private static final Set<String> mValues; 
static { 
    mValues = new HashSet<>(); 
    mValues.add("6A"); 
    mValues.add("6B"); 
    // add others 
} 

Button clickButton = (Button) findViewById(R.id.button); 
clickButton.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     EditText tvId = (EditText) findViewById(R.id.editText); 
     TextView tvIdd = (TextView) findViewById(R.id.textView2); 
     String value = tvId.getText().toString(); 
     if (mValues.contains(value)) { 
      // your edit text contains one of the strings, do your stuff here 
     } 
    } 
}); 
0

STEP 1

これは、Androidの中の文字列の静的配列を作成して使用するのは簡単です。これはJavaコードで行うことができますが、AndroidではこれをXMLで行う方が簡単です。

これは、あなたがAndroidのXMLファイル内の静的文字列配列を定義する方法である:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <string-array name="myStrings"> 
     <item>6A</item> 
     <item>6B</item> 
     <item>6C</item> 
     <item>6D</item> 
    </string-array> 
</resources> 

次にあなたが

Resources res = getResources(); 
String[] myArray = res.getStringArray(R.array.myStrings); 
if (Arrays.asList(myArray).contains(yourInputFromTextView)) { 
    // true 
} 

STEP 2

としてJavaコードでこれを取得することができます文字列が常にパターンに従う場合、これは最も簡単な方法です

public boolean isInputCorrect(String s){ 
    String pattern= "^[67890][ABCD]$"; 
     if(s.matches(pattern)){ 
      return true; 
     } 
     return false; 
} 
0

がハッシュテーブルに文字列6A、6B ...を入れて、あなたがのEditTextウィジェットから取得したテキストと比較し、これがあれば、他の枝の数十を避けることができます。

例:

String inputText = tvId.getText().toString(); 
if (hashTable.containsKey(inputText)) { 
    tvIdd.setText(intputText); 
} 
0
final String[] test={"6A","6B","6C"}; 
    final EditText tvId = (EditText) findViewById(R.id.editText); 
    final TextView tvIdd = (TextView) findViewById(R.id.textView2); 
    Button clickButton = (Button) findViewById(R.id.button); 
    clickButton.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      for(int i=0;i<test.length;i++){ 
       if(test[i].equals(tvId.getText().toString())){ 
        tvIdd.setText(test[i]); 
       } 
      } 
     } 
    }); 
関連する問題