2013-04-18 75 views
0

我的函數有問題,它搜索我的列表。這個列表數組在實際的.java文件中用於附加到String[],但我將該數組移動到了字符串xml文件中,以實現在應用程序中使用不同語言的另一個功能。因此轉換列表視圖當數組在字符串中時搜索列表視圖xml

無論如何,我明白了爲什麼代碼執行以下操作,但我不能工作,如何解決呢?

Resources res = getResources(); 
final String[] items = res.getStringArray(R.array.societies_array); 

listView2 = (ListView) findViewById(R.id.societieslist); 
EditText inputSearch = (EditText) findViewById(R.id.inputSearch); 

// Adding items to listview 
adapter = new ArrayAdapter<String>(this, 
     android.R.layout.simple_list_item_1, items); 
inputSearch.addTextChangedListener(new TextWatcher() { 
    @Override 
    public void onTextChanged(CharSequence cs, int arg1, int arg2, 
      int arg3) { 
     // When user changed the Text 
     System.out.println(cs); 
     SocietiesScreen.this.adapter.getFilter().filter(cs); 
    } 

    @Override 
    public void beforeTextChanged(CharSequence arg0, int arg1, 
      int arg2, int arg3) { 
     // TODO Auto-generated method stub 
    } 

    @Override 
    public void afterTextChanged(Editable arg0) { 
     // TODO Auto-generated method stub 
    } 
}); 

的thelist的onclick監聽器是依賴於指數的名單,所以當沒有搜索時,它工作正常,但是當我搜索一個特定的選項時,新的「第一選項」現在被賦予一個新的索引號,而不是保留原來的號碼

希望這是有道理的, ,如果你需要任何東西只是讓我知道

謝謝

+0

我會說這是有道理的索引是顯示的項目中的索引,不是嗎? – njzk2

+0

是的,它有點合理,但如果索引是整行的索引,它會發現我的錯誤 – user2291530

+0

行爲是正常的,但這不應該是一個問題,因爲你總是有'getItem(position)'方法您可以調用適配器來獲取該行的字符串。 – Luksprog

回答

0

我想我已經回答了一個非常類似的問題here。你還應該看「the world of listView」講座。

基本上,如果您使用自定義BaseAdapter,則可以爲已過濾項目創建新模式,只要搜索字段中存在某些內容即可啓用該模式。

啓用此模式後,項目將從篩選列表中取回,而不是從原始列表中取回。

如果您沒有使用自己的BaseAdapter,請查看this link