2014-01-17 36 views
0

我想比較我的輸入字符串與另一個類的數組列表,所以我用searchfield來比較它們。如下所示,它工作正常。Android:比較字符串輸入(edittext)與arraylist

輸入類

public class Suche extends Activity{ 

private Button zumergebnis; 
final Intent zum_ergebnis = new Intent("android.intent.action.activity_ergebnis"); 

static String mystring; 

static void setstring(String textView){ 
    mystring = textView; 
} 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_suche); 



    zumergebnis = (Button) findViewById(R.id.zumergebnis); 

     zumergebnis.setOnClickListener(new View.OnClickListener(){ 
      public void onClick(View v){ 

      EditText searchinput = (EditText) findViewById(R.id.editText1); 
      String from = searchinput.getText().toString(); 

      setstring(from); 

      startActivity(zum_ergebnis); 
      } 
     });} 

} 

public class Ergebnis extends Suche 
{ 

private TextView textView; 

static String getstring(){ 
    return mystring; 
} 

protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_ergebnis); 


    textView = (TextView) findViewById(R.id.textView2); 
    textView.setText(mystring); 

    class2 Object = new class2(); 
    final ArrayList<String> word = Object.method2(); 

    ListAdapter listenAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, word); 

    ListView mystringsView = (ListView) findViewById(R.id.listView1); 
    mystringsView.setAdapter(listenAdapter); 

      textView = (TextView) findViewById(R.id.textView2); 
      String searchField = (mystring); 
     for (String s : word) 
     { 
       if (searchField.toString().contains(s)) 
         { 
          textView.setText("Your word"+mystring+"exists in the list"); 
         } 
         else 
         { 
         textView.setText("Word"+mystring+"doesnt exist"); 
         continue; 
         } 
        break;   
     }   

} 
} 

列表類

public ArrayList method2(){ 
    ArrayList<String> word = new ArrayList<String>(); 

    word.add("uno"); 
    word.add("dos"); 
    word.add("tres"); 

    return word; 
    } 

} 

但插件比較時克的第二:

列表類

public ArrayList method2(){ 
    ArrayList<String> word = new ArrayList<String>(); 

    word.add("uno; one"); 
    word.add("dos; two"); 
    word.add("tres; three"); 

    return word; 
    } 

} 

'列' 的應用程序停止。

任何想法如何甚至搜索第二個條目?

+0

您是否聲明瞭清單中的操作和Activity? – Blackbelt

+0

請寄出logcat。但是我會冒險猜測它與你對Object.method2()的調用有關。 – Rarw

+0

在class2上設置斷點Object = new class2();並且一步一步地看看它在哪裏崩潰以及變量的價值是什麼。 – Melquiades

回答

0

大家誰是興趣爲問題的解決方案,在for循環已被更改爲:

for (int i = 0; i < word.size(); i++) { 
       if (word.get(i).contains(searchField.trim())) { 
        textView.setText("Your input '" +mystring+ "' exists."); 
       } 
       else 

增加了一些條目到ArrayList:

public ArrayList method2(){ 
    ArrayList<String> word = new ArrayList<String>(); 
    word.add("uno; one"); 
    word.add("dos; two"); 

    return word; 
    } 

它工作正常現在。