마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

어댑터에 막대 프로그래스바 진행상태를 저장하기 위해 preference를 이용하였는데..오류좀봐주세요ㅠㅠ

0 추천

사용자가 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;
    }
}
뚜루루루둡 (1,130 포인트) 님이 2016년 11월 27일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...