Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 单击按钮时更改ListView中的按钮背景_Java_Android_Android Layout_Android Listview - Fatal编程技术网

Java 单击按钮时更改ListView中的按钮背景

Java 单击按钮时更改ListView中的按钮背景,java,android,android-layout,android-listview,Java,Android,Android Layout,Android Listview,我有一个listview。它包含一个图像、文本和一个按钮。我已经为此创建了自定义listview。现在我想在单击按钮时更改按钮的背景图像。我在CustomAdapter的getView方法中获得了一个click事件。但我无法更改背景图像。 请帮帮我 下面是我的适配器的getView方法代码 public View getView(final int position, View convertView, ViewGroup parent) { View v = convertView;

我有一个listview。它包含一个图像、文本和一个按钮。我已经为此创建了自定义listview。现在我想在单击按钮时更改按钮的背景图像。我在CustomAdapter的getView方法中获得了一个click事件。但我无法更改背景图像。 请帮帮我

下面是我的适配器的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; 
}

我相信你想做的是

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

嗯。。如果我没有弄错的话,视图类也有setBackgroundDrawable,但是想法是你应该使用onclicked视图,而不是一般的btnAddToFavourite

而不是btnAddToFavourite.setBackgroundDrawable试试arg0.setBackgroundDrawable谢谢我的朋友…它起作用了…谢谢4引导我…上帝保佑你+1-但是如果列表被滚动了颜色会改变的。或者给出一个奇怪的结果,以防他会使用ViewHolder谢谢你我的朋友…继续帮助…我找到了解决办法…上帝保佑你。。。