2016-08-12 14 views
0

おはよう、 ListViewの検索バーを作成するためのチュートリアルが見つかりました。私が従うものの中にはAndroid Adding Search Functionality to ListViewがあります。コードは正常に動作しますが、私はそれを私のリストに適合させることはできません。私は最初からプロジェクトを再開しなければならなかった。私はAndroidプログラミングの初心者であり、本当に助けが必要です。ここに私のコードです: ShoppingListActivity.java私のリストビューに検索フィルターを追加します。

public class ShoppingListActivity extends Activity { 

private List<Produit> mCartList; 
private ProduitAdapter mProductAdapter; 
EditText inputSearch; 

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


    mCartList = ShoppingListHelper.getCartList(); 

    // Make sure to clear the selections 
    for(int i=0; i<mCartList.size(); i++) { 
    mCartList.get(i).selected = false; 
    } 


    // Create the list 
    final ListView listViewCatalog = (ListView) findViewById(R.id.ListViewCatalog); 
    mProductAdapter = new ProduitAdapter(mCartList, getLayoutInflater(), true); 
    listViewCatalog.setAdapter(mProductAdapter); 

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

    inputSearch.addTextChangedListener(new TextWatcher() { 

     @Override 
     public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) { 
     } 

     @Override 
     public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { } 

     @Override 
     public void afterTextChanged(Editable arg0) { 
      String text = inputSearch.getText().toString().toLowerCase(Locale.getDefault()); 
      mProductAdapter.filter(text);} 
    }); 


    listViewCatalog.setOnItemClickListener(new OnItemClickListener() { 

    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, 
    long id) { 
    Intent productDetailsIntent = new Intent(getBaseContext(),ProduitDetailsActivity.class); 
    productDetailsIntent.putExtra(ShoppingListHelper.PRODUCT_INDEX, position); 
    startActivity(productDetailsIntent); 
    } 
    }); 

} 

が、これはShoppingListHelper.javaが含まれているものです:

public static List<Produit> getCatalog(Resources res){ 
    if(catalog == null) { 
     catalog = new Vector<Produit>(); 
     catalog.add(new Produit("Nutella", res 
     .getDrawable(R.drawable.nutella), 
     "Pate à tartiner au chocolat, au bon goût de noisettes", 750)); 
    } 

    return catalog; 
    } 

そしてProduitAdapter.java

 public class ProduitAdapter extends BaseAdapter { 


private List<Produit> mProductList; 
private LayoutInflater mInflater; 
private boolean mShowQuantity; 


private ArrayList<Produit> arraylist; 
public ProduitAdapter(List<Produit> list, LayoutInflater inflater, boolean showQuantity) { 
    mProductList = list; 
    mInflater = inflater; 
    mShowQuantity = showQuantity; 
} 

@Override 
public int getCount() { 
    return mProductList.size(); 
} 

@Override 
public Object getItem(int position) { 
    return mProductList.get(position); 
} 

@Override 
public long getItemId(int position) { 
    return position; 
} 


public void filter(String charText) { 
     charText = charText.toLowerCase(Locale.getDefault()); 
     mProductList.clear(); 
     if (charText.length() == 0) { 
      mProductList.addAll(arraylist); 
     } 
     else 
     { 
      for (Produit wp : arraylist) 
      { 
       if (wp.getProduct().toLowerCase(Locale.getDefault()).startsWith(charText)) 
       { 
        mProductList.add(wp); 
       } 
      } 
     } 
     notifyDataSetChanged(); 
    } 

私は日食JUNOを使用しています。

EDITED: 私のコードではフィルタを実装しましたが、私のeditTextは機能しません!コンパイル時にエラーは表示されません!

ありがとうございます。

+3

問題のリンクが壊れています。 問題のログメッセージや実際の問題はなく、コードは完全ではありません。 –

+0

これはリンクです:http://www.androidhive.info/2012/09/android-adding-search-functionality-to-listview/ –

+0

あなたの問題はまだ明らかにされていません。あなたは何の難しさを持っていますか? –

答えて

関連する問題