안드로이드 리스트뷰 아이템마다 있는 프로그래스바 상태값 저장하는데 있어서 오류문제좀 봐주세요ㅠㅠ

조회수 1568회

제가 커스텀 리스트뷰를 꾸몄는데 각 리스트뷰 아이템 별로있는 go 버튼을 누르면 아이템별로 있는 프로그래스바의 상태가 진행되는 건데요! 앱을껏다 키면 진행되어진 프로그래스바가 초기화 되길래.. SharedPreference를 사용했어요.. 저는 각각의 리스트뷰 아이템에 있는 프로그래스바에 적용하고 싶거든요?? 근데 지금 코드상으로는앱을 껏다켜도 상태가 저장은 되는데 만약 4개의 리스트뷰 아이템이있으면 4개의 프로그래스바가 다 같이 움직인다고하나?....그런 오류가 있는데..저는 각각 다른 값을 저장하고싶어서요 ㅠㅠ 그리고 1번째 go버튼을 누르면 2번째 리스트뷰의 프로그래스바가 움직이고 지금 너무 제각각인데 무슨 문제일까요..?ㅠㅠ

이게 리스트뷰를 꾸며주는 어댑터뷰이구요!
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) {


        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);



        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);

                }
                editor.putInt("progressbar", progressbar.getProgress());
                editor.commit();
                Toast.makeText(view.getContext(), "합격을 축하드립니다 :)",
                        Toast.LENGTH_SHORT).show();

            }

        });
        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;
    }
}
public class Tabs2 extends Fragment {

    SQLiteDatabase sqlitedb;
    DBManager dbmanager;
    Cursor cursor;
    private ListView mListView = null;
    String sql;
    DBAdapter3 dbAdapter3;
    int mProg;
    private SharedPreferences pref;
    private SharedPreferences.Editor editor;
    private ProgressBar progressbar;


    public Tabs2() {
        // Required empty public constructor
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        setHasOptionsMenu(true);
        View view = inflater.inflate(R.layout.activity_tab2, container, false);

        mListView = (ListView) view.findViewById(R.id.list);
        mListView.setEmptyView(view.findViewById(R.id.emptyView));



        progressbar=(ProgressBar)view.findViewById(R.id.progressbar); //어댑터뷰 아이템 프로그래스바

        Button btn_go = (Button)view.findViewById(R.id.progressgo);
        Button btn_end =(Button)view.findViewById(R.id.progressend);

      /* btn_go.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                Toast.makeText(getView().getContext(), "합격 버튼 리스너",
                        Toast.LENGTH_SHORT).show();
                Log.e("TAG", "##################합격 버튼 오류일까요?##########################");
            }
        });

       /* btn_end.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(getView().getContext(), "진행 종료 버튼 리스너",
                        Toast.LENGTH_SHORT).show();
            }
        });*/


        dbAdapter3 = new DBAdapter3(getActivity(), cursor);

        dbmanager = new DBManager(getActivity());

        selectDB(); 

        // Inflate the layout for this fragment
        return view;

    }

    private void selectDB(){
        sqlitedb = dbmanager.getWritableDatabase();
        sql = "SELECT * FROM company;";
        cursor = sqlitedb.rawQuery(sql, null);

        if(cursor.getCount() > 0){
            getActivity().startManagingCursor(cursor);
            DBAdapter3 dbAdapter = new DBAdapter3(getActivity(), cursor);

            mListView.setAdapter(dbAdapter); //Tabs1.selectDB(Tabs1.java:78)
            Log.d("확인", "##################무엇이 오류일까요?##########################");
        }

    }
  • (•́ ✖ •̀)
    알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)