android listview初始化设定选中项

那个对号是点击了一下之后才有的我想初始化就显示那个对号。谁能帮我?我追加分数。... 那个对号是点击了一下之后才有的 我想初始化就显示那个对号。谁能帮我?我追加分数。 展开
 我来答
蒙着双眼天使cs
推荐于2016-09-30 · 超过14用户采纳过TA的回答
知道答主
回答量:52
采纳率:0%
帮助的人:13.6万
展开全部
本身是想做一个类似用户配置的界面,在listview里面有checkbox 当用户选中这个checkbox的时候 自动保存,第二次打开的时候也是保存的状态。
最主要的是自定义的 MyAdatper的代码
[java] view plaincopy
class MyAdatper extends BaseAdapter{
public HashMap<Integer, Boolean> selectedMap;
String gamesStr = getContentByType("games");
String alamString = getConfigByGames(gamesStr,"alarms");

/*
public MyAdatper(){
init();
}
private void init(){
selectedMap = new HashMap<Integer, Boolean>();
JSONArray alamsJsonArray;
try {
alamsJsonArray = new JSONArray(alamString);
for(int i=0; i<alamsJsonArray.length(); i++){
JSONObject alarmsobj=(JSONObject) alamsJsonArray.get(i);
String alarmId = alarmsobj.getString("id");
boolean isSelected = getUserIsChecked(alarmId);
selectedMap.put(Integer.parseInt(alarmId), isSelected);
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}*/
@Override
public int getCount() {
try {
JSONArray jsonCount = new JSONArray(alamString);
return jsonCount.length();
} catch (JSONException e) {
e.printStackTrace();
}
return 10;
}

@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}

@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return 0;
}
private class RecentViewHolder {
TextView alarmTitle; //提醒名称
TextView alarmTime; //活动时间
CheckBox isOpenAlarm; //是否打开提醒
}
@Override
public View getView(int position, View contentView, ViewGroup arg2) {
// TODO Auto-generated method stub
RecentViewHolder holder;
if(contentView==null)
{
holder = new RecentViewHolder();
contentView=LayoutInflater.from(getApplicationContext()).inflate(R.layout.alarm_item, null);
holder.alarmTitle = (TextView) contentView.findViewById(R.id.alarmTitle);
holder.alarmTime = (TextView) contentView.findViewById(R.id.alarmTime);
holder.isOpenAlarm = (CheckBox) contentView.findViewById(R.id.isOpenAlarm);
contentView.setTag(holder);
}else{
holder = (RecentViewHolder) contentView.getTag();
}
JSONArray alamsJsonArray;
try {
alamsJsonArray = new JSONArray(alamString);
JSONObject alarmsobj=(JSONObject) alamsJsonArray.get(position);
String title = alarmsobj.getString("title");
String target_time = alarmsobj.getString("target_time");
String clock = alarmsobj.getString("clock");
holder.alarmTitle.setText(title);
holder.alarmTime.setText(target_time);

final String alarmId = alarmsobj.getString("id");
boolean isChecked = getUserIsChecked(alarmsobj.getString("id"));
holder.isOpenAlarm.setOnCheckedChangeListener(null);
holder.isOpenAlarm.setChecked(isChecked);
buttonOnclick(holder.isOpenAlarm,alarmId);
/*
//判断用户的这个是否设置
//boolean isChecked = getUserIsChecked(alarmsobj.getString("id"));
//Log.e("is_selected",isChecked+"");
//holder.isOpenAlarm.setSelected(isChecked);
//holder.isOpenAlarm.setVisibility(View.VISIBLE);
//boolean checked = selectedMap.get(Integer.parseInt(alarmId));
//holder.isOpenAlarm.setChecked(checked);
//final CheckBox checkbox = holder.isOpenAlarm;
contentView.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//checkbox.toggle();
//selectedMap.put(Integer.parseInt(alarmId), checkbox.isChecked());

//holder.isOpenAlarm.setSelected(checkbox.isChecked());
}
});*/
//holder.isOpenAlarm.setId(Integer.parseInt(alarmId));

//buttonOnclick(holder.isOpenAlarm,alarmId);

} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return contentView;
}
private void buttonOnclick(CheckBox checkbox,final String alarmId){
checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// 判断是否选中 更新用户的配置
if(isChecked){
updateConfigInfo(alarmId,1);
}else{
updateConfigInfo(alarmId,0);
}
}
});
}
}
lucky_znk
推荐于2016-10-29 · TA获得超过881个赞
知道小有建树答主
回答量:800
采纳率:0%
帮助的人:538万
展开全部
onCreate的时候先findViewById获取到该ListView,然后ListView中有个setSelection()方法,传的参数为当前选定的Item的position。在onCreate的时候setSelection(position)就好了。
详见http://developer.android.com/reference/android/widget/ListView.html#setSelection(int)
追问
额,麻烦你打出代码好么,我把那个setSelection(position)添上了 也不好使。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
买太狼
2015-11-11
知道答主
回答量:27
采纳率:0%
帮助的人:7.3万
展开全部
你可以通过绑定在adapter上的初始数据设定来实现
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式