動的に作成したトグル ボタンのステータスを保存しようとしています。現在の状態を保存できません。アプリケーションでアクティビティを変更してから戻ってくると、トグル ボタンのステータスがデフォルトに戻ります。これが私のコードです。誰かが私を助けることができますか?
private class CustomAdapter extends ArrayAdapter<HashMap<String, Object>>
{
public CustomAdapter(Context context, int textViewResourceId,
ArrayList<HashMap<String, Object>> Strings){
super(context,textViewResourceId, Strings);
}
List<Paper> papers_list = BetterActivity.masterConference.getPapers();
private class ViewHolder
{
TextView paperTitle, author;
}
ViewHolder viewHolder;
public View getView(final int position, View convertView, final ViewGroup parent){
if(convertView == null)
{
convertView = inflater.inflate(R.layout.paper_row_item, null);
viewHolder=new ViewHolder();
viewHolder.paperTitle=(TextView) convertView.findViewById(R.id.paperTitle);
viewHolder.author=(TextView) convertView.findViewById(R.id.author);
addFavorite=(ToggleButton) convertView.findViewById(R.id.ToggleButton01);
convertView.setTag(viewHolder);
}
else
viewHolder = (ViewHolder) convertView.getTag();
viewHolder.paperTitle.setText(searchResults.get(position).get("title").toString());
viewHolder.author.setText(searchResults.get(position).get("author").toString());
LoadPreferences();
final List<Paper> pape = masterConference.getUser().getFavoritePapers();
addFavorite.setOnClickListener(new View.OnClickListener() {
Paper p = papers_list.get(position);
@Override
public void onClick(View v) {
boolean on = ((ToggleButton) v).isChecked();
System.out.println(parent.getChildAt(position).getId() + " " + position);
SharedPreferences preference = getPreferences(MODE_PRIVATE);
if(on)
{
masterConference.addPaperToFavorites(p);
SharedPreferences.Editor editor = preference.edit();
editor.putBoolean(p.getTitle(),true);
editor.commit();
//SavePreferences(p.getTitle(), position);
Toast.makeText(getBaseContext(), "esta verde, " + p.getTitle() + "size " + pape.size(), Toast.LENGTH_SHORT).show();
}
else
{
masterConference.removePaperFromFavorites(p);
SharedPreferences.Editor editor = preference.edit();
editor.putBoolean(p.getTitle(),false);
editor.commit();
Toast.makeText(getBaseContext(), "esta branco", Toast.LENGTH_SHORT).show();
}
// TODO Auto-generated method stub
}
});
return convertView;
}
}
private void LoadPreferences(){
SharedPreferences preferences = getPreferences(MODE_PRIVATE);
for(int i = 0; i < papers_list.size(); i++)
{
String epa = papers_list.get(i).getTitle();
boolean teste = preferences.getBoolean(epa, false);
if(teste == true)
addFavorite.setChecked(true);
else
addFavorite.setChecked(false);
}
}
}
誰かが何が悪いのか教えてもらえますか? 保存してロードしますが、これは何もしません。