gpt4 book ai didi

android - 在按钮的 onclicklistener 中设置列​​ TableView 的适配器后, ListView 的项目变灰...?

转载 作者:太空狗 更新时间:2023-10-29 12:49:43 25 4
gpt4 key购买 nike

我的应用程序有问题;在我的应用程序中,我优化了 ListView 适配器及其使用按钮的项目,但是当我单击“显示所有记录”之类的按钮时, ListView 中的项目显示为灰色。

我认为代码不言自明:

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, ListView 的适配器设置为显示所有项,并且显示了项,但行显示为灰色。我该怎么做才能使它们不显示为灰色?编辑:经过一些编码,编辑了适配器,这里是 ListView 适配器的代码:

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

最佳答案

您不必在 Activity 中使用 getApplicationContext()。使用 thisYourActivity.this

  • getBaseContext() - 获取当前 Activity 的上下文(但你应该改用上下文)并且可以在 Activity 结束时销毁销毁

  • getApplicationContext()` - 与整个生命周期中的所有 Activity 。

如果您想为您的 View 设置一个适配器,请使用您的 Activity 上下文,例如 YourActivity.this(baseContext 可以解决问题,但 Google 不建议使用它) .

关于android - 在按钮的 onclicklistener 中设置列​​ TableView 的适配器后, ListView 的项目变灰...?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13637228/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com