[英]Background Color of a list item in ListView
我在android中創建音頻播放器,並在列表視圖中顯示歌曲列表。 我想更改列表視圖中當前正在播放的歌曲的背景顏色。 歌曲完成后會更改歌曲,在這種情況下,請設置該歌曲的背景顏色,並從列表中先前選擇的歌曲中刪除背景顏色。
yourview = v;
v.setBackgroundResource(R.color.transparent_green);
請使用完整的源代碼檢查此Customized ListView項目的選擇顏色如何更改列表視圖項目的背景顏色。
package com.finallys.sandy;
import java.util.ArrayList;
import android.app.Activity;
import android.content.res.ColorStateList;
import android.graphics.Color;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;
public class MainActivity extends Activity {
ArrayList<String> arr = new ArrayList<String>();
public HelloBase mAdapter;
LayoutInflater li;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ListView mListView = new ListView(this);
li = getLayoutInflater();
for (int i = 0; i < 100; i++) {
arr.add("this is my song" + i);
}
mAdapter = new HelloBase();
mListView.setAdapter(mAdapter);
setContentView(mListView);
}
class HelloBase extends BaseAdapter {
@Override
public int getCount() {
// TODO Auto-generated method stub
return arr.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
class ViewHolder {
TextView txt;
}
ViewHolder vhHolder;
@SuppressWarnings("null")
@Override
public View getView(int position, View convertView, ViewGroup parent) {
vhHolder = new ViewHolder();
if (convertView == null) {
convertView = li.inflate(R.layout.activity_main, null);
vhHolder.txt = (TextView) convertView
.findViewById(R.id.webView1);
convertView.setTag(vhHolder);
} else {
vhHolder = (ViewHolder) convertView.getTag();
}
vhHolder.txt.setText(arr.get(position));
vhHolder.txt.setOnClickListener(new OnMyClick(vhHolder.txt));
return convertView;
}
class OnMyClick implements OnClickListener {
TextView txt;
OnMyClick(TextView txt) {
this.txt = txt;
}
@Override
public void onClick(View v) {
txt.setTextColor(Color.RED);
mAdapter.notifyDataSetChanged();
if (preTextView != null)
preTextView.setTextColor(Color.BLACK);
preTextView = txt;
}
}
}
TextView preTextView;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.