我正在尝试制作发射器。 我已经使用app_label,icon,package_name和复选框显示了自定义列表。 现在我想在共享首选项中保存选定的app_name。 我没有得到如何通过它。 请帮助。
这是我的代码:
adapter = new ArrayAdapter<AppDetail>(MainActivity.this,
android.R.layout.simple_list_item_multiple_choice, apps) {
@Override
public View getView(int position, View convertView,
ViewGroup parent) {
View row = convertView;
if (row == null) {
convertView = getLayoutInflater().inflate( R.layout.list_item,parent,false);
}
// check_checkbox();
k=apps.get(position);
ImageView appIcon = (ImageView) convertView
.findViewById(R.id.item_app_icon);
appIcon.setImageDrawable(k.icon);
TextView appLabel = (TextView) convertView
.findViewById(R.id.item_app_label);
appLabel.setText(k.label);
TextView appName = (TextView) convertView
.findViewById(R.id.item_app_name);
appName.setText(k.name);
final String ss;
ss = k.name;
ch = (CheckBox) convertView.findViewById(R.id.c1);
ch .setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean b) {
}
});
ch.setChecked(apps.get(position).c1);
return convertView;
}
};
答案 0 :(得分:0)
您可以在一个集合中添加所有已检查的应用程序名称,然后将此集合保存在sharedprefrences中: -
Set<String> set =new HashSet<String>();
ch .setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean b) {
if()
{
set.add(ch.getText());
}
else
{
set.remove(ch.getText());
}
});
然后在你的共享偏好中使用编辑器
放置集合 editor.putStringSet("appnames",set);