在按钮点击时在ListView中更改按钮背景

问题描述:

我有一个listview.which包含一个图像,文本和一个按钮.i已经为此定义了自定义列表视图。现在我想要更改当按钮被点击时按钮的背景图像.i在我的CustomAdapter的getView方法中有一个点击事件,但我不能改变背景图片。 请帮助我。在按钮点击时在ListView中更改按钮背景

以下是我的代码getView()方法的适配器。

public View getView(final int position, View convertView, ViewGroup parent) 
{ 
    View v = convertView; 
    ViewHolder holder = null; 

    v = vi.inflate(R.layout.row_lv_operator, null); 
    tvOperatorname=(TextView) v.findViewById(R.id.tvOperatorName); 
    ivOperatorIcon=(ImageView)v.findViewById(R.id.ivOperatorIcon); 
    btnAddToFavourite=(Button)v.findViewById(R.id.btnFavourite); 
    tvOperatorname.setText(values[position]); 
    ivOperatorIcon.setImageResource(icons[position]); 
    //holder.ivOperatorIcon.setTag(values[position]); 
    btnAddToFavourite.setOnClickListener(new OnClickListener() 
    {       
     public void onClick(View arg0) 
     { 
       **btnAddToFavourite.setBackgroundDrawable(getResources().getDrawable(R.drawable.favourite_marked));** 
       Toast.makeText(getApplicationContext(), "hi",Toast.LENGTH_SHORT).show(); 

     } 
    }); 

    eturn v; 
} 
+2

而不是btnAddToFavourite.setBackgroundDrawable尝试arg0.setBackgroundDrawable – SERPRO

+0

感谢我的朋友......它的工作......感谢4引导我......上帝保佑你。 –

我相信你的努力做的是一样的东西

public void onClick(View arg0) 
{ 
((Button) arg0).setBackgroundDrawable(.... 

以及..如果我不是错误观点类也有setBackgroundDrawable但这个想法是,你应该使用onclicked视图,而不是一般的btnAddToFavourite

+2

+1 - 但是如果列表滚动,颜色将会改变。或给出奇怪的结果,以防万一他将使用'ViewHolder' –

+0

非常感谢你我的朋友......继续帮助..我得到了解决方案...神保佑你... –