사용자가 go버튼을 누르면 막대 프로그래스바를 한단계씩 진행 시키는원리인데 제가 리스트뷰로 여러개의 프로그래스바가 추가될 수 있도록 어댑터를 이용해서 view를 꾸몄어요... 프로그래스바의 상태값을 저장하기 위해
preference 소스를 이용했는데 ... 이게 각각의 리스트뷰 아이템에 있는 프로그래스바가 아닌 전체 리스트뷰 프로그래스바가 상태가 같이 저장된다하나..?같이 움직이는데... 왜 그런건지 ㅠㅠㅠ 리스트뷰 아이템별로 각각의 아이템을 따로주고싶거든요 ㅠㅠ
public class DBAdapter3 extends CursorAdapter {
private SharedPreferences pref;
private SharedPreferences.Editor editor;
private ProgressBar progressbar;
public DBAdapter3(Context context, Cursor c) {
super(context, c);
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
final TextView tx_num = (TextView) view.findViewById(R.id.count);
progressbar =(ProgressBar)view.findViewById(R.id.progressbar);
pref = context.getSharedPreferences("Pref", Activity.MODE_PRIVATE);
editor = pref.edit(); // 에디터를 받아옵니다.
//불러온당
progressbar.setProgress(pref.getInt("progressbar", 0));
final TextView tx_count =(TextView)view.findViewById(R.id.checkcount);
final Button btn_go =(Button)view.findViewById(R.id.progressgo);
final Button btn_end =(Button)view.findViewById(R.id.progressend);
final int num =cursor.getInt(cursor.getColumnIndex("count"));
tx_count.setText(cursor.getString(cursor.getColumnIndex("count")));
btn_go.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (num == 4) {
progressbar.incrementProgressBy((int) 100 / 4);
} else if (num == 3) {
progressbar.incrementProgressBy(34);
} else if (num == 2) {
progressbar.incrementProgressBy((int) 100 / 2);
} else {
progressbar.incrementProgressBy(100);
}
Toast.makeText(view.getContext(), "합격을 축하드립니다 :)",
Toast.LENGTH_SHORT).show();
editor.putInt("progressbar", progressbar.getProgress());
editor.commit();
}
});
btn_end.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
onContentChanged();
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
LayoutInflater inflater = LayoutInflater.from(context);
View v = inflater.inflate(R.layout.progresslisttest, parent, false);
return v;
}
}