アプリに問題があります。私のアプリでは、リストビューアダプターを絞り込み、ボタンを使用してアイテムを表示していますが、「すべてのレコードを表示」などのボタンをクリックすると、リストビューのアイテムがグレー表示されます。
コードはそれ自体を物語っていると思います:
show_all_Button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Rest_menu menu = new Rest_menu();
menu = (Rest_menu)v.getTag();
myAdapter adapter = new myAdapter(getApplicationContext(), menu.all_array);
listView.setAdapter(adapter);
}
});
ご覧のとおり、show_all_button をクリックすると、リストビューのアダプターがすべてのアイテムを表示するように設定され、アイテムは表示されますが、行はグレー表示されます。グレーアウトしないようにするにはどうすればよいですか? 編集:いくつかのコーディングの後、アダプターを編集しました。リストビューのアダプターのコードは次のとおりです。
public class foodAdapter extends ArrayAdapter<Food> {
Context context;
public Food[] iteminarow;
public foodAdapter(Context context,Food[] iteminarow)
{
super(context, R.layout.listitem,iteminarow);
this.context=context;
this.iteminarow=iteminarow;
}
static class ViewHolder{
TextView foodname;
TextView foodprice;
TextView foodinfo;
public ViewHolder(TextView foodname,TextView foodprice,TextView foodinfo)
{
this.foodname=foodname;
this.foodprice=foodprice;
this.foodinfo=foodinfo;
}
}//end of ViewHolder
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
TextView name,price,info;
Food f = (Food)this.getItem(position);
if(convertView==null)
{
LayoutInflater LI = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = LI.inflate(R.layout.listitem,parent,false);
name=(TextView)convertView.findViewById(R.id.foodname);
price=(TextView)convertView.findViewById(R.id.foodprice);
info=(TextView)convertView.findViewById(R.id.foodinfo);
convertView.setTag(new ViewHolder(name, price, info));
}//end of if
else {
ViewHolder holder = (ViewHolder) convertView.getTag();
name = holder.foodname;
price = holder.foodprice;
info = holder.foodinfo;
}//end of else
name.setText(f.getName().toString());
price.setText(f.getPriceString());
info.setText(f.getInfo().toString());
return convertView;
}
}//end of adapter