2016-08-12 2 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

Хорошо, но ваши проблемы еще не выяснены. какая у вас сложность? –

ответ

Смежные вопросы