2017-02-21 44 views
0

我添加了textBox到我的應用程序來過濾ListView項目,所以當我在文本框中鍵入文本時,它通常過濾,但是當我嘗試選擇過濾項目時,它會打開原始位置的活動在過濾器之前而不是過濾後的過濾器上。我的過濾列表項目打開錯誤活動

@Override 
public void onCreate(Bundle savedInstanceState) { 

super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 

AdView mAdView = (AdView) findViewById(R.id.adView); 
AdRequest adRequest = new AdRequest.Builder().build(); 
mAdView.loadAd(adRequest); 

inputSearch = (EditText) findViewById(R.id.inputSearch); 

String[] ciwaananadaGabayada = getResources().getStringArray(R.array.gabayada_array); 
mListView = (ListView) findViewById(R.id.listView1); 
// Adding items to listview 
adapter = new ArrayAdapter<String>(this, R.layout.list_item, R.id.gabay_item, ciwaananadaGabayada); 
mListView.setAdapter(adapter); 
mListView.setTextFilterEnabled(true); 

//Enabling Search Filter 
inputSearch.addTextChangedListener(new TextWatcher() { 

    @Override 
    public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { 
    // When user changed the text 
    MainActivity.this.adapter.getFilter().filter(charSequence); 
    adapter.notifyDataSetChanged(); 
    //adapter.getFilter().filter(charSequence); 
    } 

    @Override 
    public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { 

    } 


    @Override 
    public void afterTextChanged(Editable editable) { 

    } 
}); 

mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 


     switch (position) { 
      case 0: 
       Intent newActivity = new Intent(MainActivity.this, Xuseenow_caqligu.class); 
       startActivity(newActivity); 
       break; 

      case 1: 
       Intent newActivity1 = new Intent(getApplicationContext(), dhurwaa_adhiga.class); 
       startActivity(newActivity1); 
       break; 

      case 2: 
       Intent newActivity2 = new Intent(getApplicationContext(), xuseenowAqoonXume.class); 
       startActivity(newActivity2); 
       break; 
+0

把你的適配器類 –

+0

@CoDFather我在哪裏把我的適配器類 – Suhayb

+0

把它放在這裏! –

回答

0

您正在使用OnItemClickListener位置假設您的列表有3個元素,當你篩選器列表和你的列表中顯示的一個項目,然後你點擊該項目在這種情況下,位置在非同一,而它的實際位置過濾器列表列表是3或2,所以在這種情況下總是得到0的位置。

爲此,您需要使用您擁有的位置來獲取過濾列表的DataItem,然後檢查您想要打開DataItem中具有的值的活動。

+0

請你能給你詳細的答案嗎? – Suhayb

+0

請勿在開關盒中使用位置。您應該獲得所選位置的數據項目,然後與您想要打開的相應活動進行比較。 –

+0

請告訴我如何獲取選定位置的數據項。 – Suhayb

相關問題