2017-02-21 10 views
0

私はListBox項目をフィルタするために私のアプリにtextBoxを追加したので、テキストボックスにテキストを入力すると通常はフィルタリングされるが、フィルタリングされた項目を選択しようとすると、フィルタリングされた部分のフィルタではなく、フィルタの前にあなたはOnItemClickListenerで位置を使用している私のフィルタリングされたリスト項目が間違ったアクティビティを開く

@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

は、3つの要素を持っていて、リストをフィルタリングし、あなたのリストには、一つの項目を示し、その後、あなたはその項目をクリックすると、この場合の位置が非でも同じではなく、その実際の位置をであるあなたのリストを想定しますフィルタリストのリストは3または2ですので、この場合は常に0の位置になります。

このためには、フィルタリングされたリストのDataItemを持っている位置を使用して取得し、DataItemのどの値に対してどのアクティビティを開くかを確認する必要があります。

+0

あなたの答えを詳細に教えてください。 – Suhayb

+0

スイッチケースにポジションを使用しないでください。選択したポジションのデータ項目を取得してから、開きたい適切なアクティビティと比較する必要があります。 –

+0

選択した位置のデータ項目を取得する方法を教えてください。 – Suhayb

関連する問題