经常写list,每次都要翻以前的代码拷贝,我就写到这里,以后就到这里考就可以了
1,layout中资源文件添加一个list
<ListView
android:id="@+id/modelist"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@color/transparent"
android:cacheColorHint="@color/transparent"
android:divider="@drawable/short_separator"
android:fadingEdge="none"
android:fastScrollEnabled="true"
android:listSelector="@color/transparent"
android:scrollbars="none" />
2,写list的item资源文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_switch"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/transparent"
android:clickable="true"
android:orientation="vertical" >
<ImageView
android:id="@+id/switchImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" >
</ImageView>
<TextView
android:id="@+id/switchText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="TextView01"
android:textSize="@dimen/textsize_normal"
android:textColor="@color/white" >
</TextView>
</LinearLayout>
3,实现adepter,里面有个DataHolder
private class SwithAdapter extends BaseAdapter {
private List<ISwitchListVO> dataList;
private Context mContext = null;
public SwithAdapter(Context context) {
mContext = context;
}
public void setData(List<ISwitchListVO> dataList) {
if (dataList != null) {
this.dataList = dataList;
}
}
@Override
public int getCount() {
return dataList.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;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
DataHolder dataHolder = null;
if (convertView == null) {
convertView = LayoutInflater.from(mContext).inflate(R.layout.item_switch, null);
dataHolder = new DataHolder();
dataHolder.layoutSwitch = (LinearLayout) convertView.findViewById(R.id.layout_switch);
dataHolder.lableView = (TextView) convertView.findViewById(R.id.switchText);
dataHolder.imgView = (ImageView) convertView.findViewById(R.id.switchImage);
convertView.setTag(dataHolder);
} else {
dataHolder = (DataHolder) convertView.getTag();
}
final ISwitchListVO folder = (ISwitchListVO) dataList.get(position);
folder.checkImgAngString();
dataHolder.imgView.setBackgroundResource(folder.imgid);
dataHolder.lableView.setText(folder.stringid);
final DataHolder holder = dataHolder;
dataHolder.layoutSwitch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 点击某一个开关之后,进到下一个状态
Log.i("ui", "press " + position);
folder.setNextState(BatteryActivity.this);
if(folder.deviceID==DeviceEnum.AIRPLANE_DEVICE.getDeviceId()){//说明是关闭飞行模式
// mHandler.sendEmptyMessage(MSG_AIRPLANE_CHANGE);
Message msg=new Message();
msg.what=MSG_AIRPLANE_CHANGE;
mHandler.sendMessageDelayed(msg, 5000);
}
// BatterInfoReceiver.getInstance().refreshBatteryTime(0,
// false);
// 更改UI
holder.imgView.setBackgroundResource(folder.imgid);
holder.lableView.setText(folder.stringid);
}
});
return convertView;
}
public class DataHolder {
public LinearLayout layoutSwitch = null;
public ImageView imgView = null;
public TextView lableView = null;
}
}
4,初始化adepter
switchAdapter = new SwithAdapter(BatteryActivity.this);
switchDataList = getCurrentSwitchList();
switchAdapter.setData(switchDataList);
switchGridView.setAdapter(switchAdapter);
5,有的时候,需要刷新adepter
switchAdapter.notifyDataSetChanged();
太好了,以后直接到这里找然后改改就可以了,哦哦