2017-07-22 7 views
0

ListViewを作成する方法を検索しましたが、SearchViewにフィルタリングできます。 しかし、今私はトップ結果に基づいてアクティビティに接続する方法を見つけようとしています。アクティビティとフィルタリングされたリストビューに関する問題

私はこのコードを試しましたが、同じアクティビティになりましたが検索結果は異なります。

package com.rahmadewi30.android.kamus; 

import android.content.Intent; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 
import android.widget.SearchView; 

public class Search extends AppCompatActivity implements SearchView.OnQueryTextListener { 

    ListView lvItem; 
    ArrayAdapter<String> adapter; 
    SearchView inputSearch; 
    String[] tumbuhan = new String[]{ 
     "Lumut Tanduk","Lumut Hati","Lumut Daun" ,"Semanggi", "Bakau", 
     "Paku Kawat", "Nanas","Pisang","Mangga"}; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_search); 

     lvItem = (ListView) findViewById(R.id.listItem); 
     inputSearch = (SearchView) findViewById(R.id.editCari); 
     adapter = new ArrayAdapter<>(Search.this, 
      android.R.layout.simple_list_item_1, android.R.id.text1, tumbuhan); 

     inputSearch.setOnQueryTextListener(this); 
     lvItem.setAdapter(adapter); 
     lvItem.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       if (position == 0) { 
        Intent l = new Intent(view.getContext(), ActivityLumut.class); 
        startActivityForResult(l, 0); 
       } else if (position == 1) { 
        Intent l = new Intent(view.getContext(), ActivityLumutHati.class); 
        startActivityForResult(l, 1); 
       } else if (position == 2) { 
        Intent l = new Intent(view.getContext(), ActivityLumutDaun.class); 
        startActivityForResult(l, 2); 
       } 
      } 
     }); 
    } 

    @Override 
    public boolean onQueryTextSubmit(String query) { 
     return false; 
    } 

    @Override 
    public boolean onQueryTextChange(String newText) { 
     adapter.getFilter().filter(newText); 
     return false; 
    } 

} 
あなたはこの1つ試してみてください
+0

クリックしますitem( 'view')は実際には/ containsです。 – Gooz

+0

はい、そうです!あなたはそれを解決する方法を私に助けることができますか? –

答えて

0

:いつもどんな、同じ活動を開始しません(== 0){ `...`場合(位置)一番上の項目に

lvItem.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
    if (position == 0) { 
     Intent myIntent = new Intent(view.getContext(), YourActivityName.class); 
     startActivityForResult(myIntent, 0); 
    } else if (position == 1) { 
     Intent myIntent = new Intent(view.getContext(), Youractivty2.class); 
     startActivityForResult(myIntent, 0); 
    } else if (position == 2) { 
     Intent myIntent = new Intent(view.getContext(), YourActivity3.class); 
     startActivityForResult(myIntent, 0); 
    } else if (position == 3) { 
      Intent myIntent = new Intent(view.getContext(), YourActivity4.class); 
      startActivityForResult(myIntent, 0); 
     } 
    }); 
+0

これはまったく同じですが、インテント変数のみを変更します。私が3番目のリストをクリックしたときにそれをフィルタリングすると、フィルタリングされていないリストの最初のアクティビティに移動します。 –

関連する問題