自定义adapter之后,oncreate里面想设置某一行为焦点,焦点皮肤为黄色,如何设置呀

自定义adapter之后,oncreate里面想设置某一行为焦点,焦点皮肤为黄色,怎么设置呀?要实现一个电视菜单,里面

自定义adapter之后,oncreate里面想设置某一行为焦点,焦点皮肤为黄色,怎么设置呀?
要实现一个电视菜单,里面有四行,每一行有两个TextView和一个ProgressBar,

是不是只能使用自定义Adapter的形式来解决? 貌似不能用SimpleAdapter。

下面是具体代码,显示已经显示出来了,焦点移动也没问题,但是就是没办法做到一开始的时候就设置某一个item为焦点,求指教怎么做到这点?  另外, 设置selector也无效,不知道为什么。

public class MyAdapter extends BaseAdapter {

private LayoutInflater mInflater;
private List<Map<String, Object>> mData;
private ViewHolder holder;
private TextView tView;

public MyAdapter(Context context, List<Map<String, Object>> data) {
this.mInflater = LayoutInflater.from(context);
this.mData = data;
}

@Override
public int getCount() {
return mData.size();
}

@Override
public Object getItem(int position) {
return null;
}

@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {

if (mData.get(position).get("type") == "text only") {
if(convertView == null){
convertView = mInflater.inflate(R.layout.text,null);
tView = (TextView) convertView.findViewById(R.id.tvMain);
convertView.setTag(tView);
}else{
tView = (TextView) convertView.getTag();
}
//赋值
tView.setText(mData.get(position).get("title").toString());
} else {
if (convertView == null) {
holder = new ViewHolder();

convertView = mInflater.inflate(R.layout.pcsettings, null);
holder.setTvTitle((TextView) convertView
.findViewById(R.id.tvTitle));
holder.setPbProgressBar((ProgressBar) convertView
.findViewById(R.id.progressBar));
holder.setTvValue((TextView) convertView
.findViewById(R.id.tvValue));

convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
// 给每一行赋值
holder.getTvTitle().setText(
mData.get(position).get("title").toString());
holder.getPbProgressBar().setProgress(
Integer.parseInt(mData.get(position).get("position")
.toString()));
holder.getTvValue().setText(
mData.get(position).get("position").toString());

}
return convertView;
}

}


public class PCSettings extends ListActivity { 


private List<Map<String, Object>> mData;
//自定义的Adapter类
private MyAdapter adapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

this.getWindow().setLayout(800, 400);
mData = getData();
        adapter = new MyAdapter(this,mData);
setListAdapter(adapter);

getListView().setOnItemClickListener(listener);

}

AdapterView.OnItemClickListener listener = new AdapterView.OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
System.out.println(mData.get(arg2).get("title"));
}

};

private List<Map<String, Object>> getData() {
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Map<String, Object> map = new HashMap<String, Object>();
map.put("type", "text only");
map.put("title","自动调整" );
list.add(map);
map = new HashMap<String, Object>();
map.put("type", null);
map.put("title","hpos" );
map.put("position", 60);
list.add(map);
map = new HashMap<String, Object>();
map.put("type", null);
map.put("title","vpos" );
map.put("position", 40);
list.add(map);
map = new HashMap<String, Object>();
map.put("type", null);
map.put("title","phase" );
map.put("position", 30);
list.add(map);
map = new HashMap<String, Object>();
map.put("type", null);
map.put("title","clock" );
map.put("position", 20);
list.add(map);
return list;
}


@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_J:
keyCode = KeyEvent.KEYCODE_DPAD_UP;
return getListView().onKeyDown(keyCode, event);
case KeyEvent.KEYCODE_K:
keyCode = KeyEvent.KEYCODE_DPAD_DOWN;
return getListView().onKeyDown(keyCode, event);
default:
break;
}
return super.onKeyDown(keyCode, event);
}
}

listview?adapter?


[解决办法]
构造函数里面加个位置参数,new MyAdapter(context,list,int);通过int参数在adapter类里面实现你想要的功能
[解决办法]
getView中的position参数就是行数,你判断position的值,设置颜色不就行了?
if (position == ***)
convertView.setBackgroundColor(0xffff00);