listview 증감 질문 드립니다.

조회수 455회

안녕하세요 android 공부중인 학생입니다! 다름이 아니라 리스트뷰 안에 +, - 버튼을 만들고 그 버튼을 클릭하면 버튼 사이에 있는 숫자 text가 바뀌는 코드를 짯습니다. 그런데 제가 count라는 인수 한개로 여러 item에서 사용하다보니 중첩이 생깁니다. 예를 들어 맨 위에 첫번째 item에서 +를 눌러 2로 만듭니다 그 다음 밑에 item에서 새로 +를 누르면 1에서 2가 되어야하는데 1에서 바로 3으로 가는 식으로 바뀝니다. 어떻게 이 문제를 해결해야할지 잘 모르겠어서 질문을 드립니다. 참고로 item의 개수는 제가 직접 선택하여 ArrayList에 넣는거라서 일정하지 않습니다.

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingRight="60dp"
        android:text="세트"
        android:textSize="15dp"
        android:textColor="#000000"
        android:gravity="center" />
<Button
    android:id="@+id/button_minus_1"
    android:layout_width="5dp"
    android:layout_height="40dp"
    android:text="-"
    android:layout_weight="1" />
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text=""
    android:id="@+id/textView_1"
    android:textSize="16dp"
    android:textColor="#000000"
    android:gravity="center"
    android:layout_weight="3" />
<Button
    android:id="@+id/button_plus_1"
    android:layout_width="5dp"
    android:layout_height="40dp"
    android:text="+"
    android:layout_weight="1" />
</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingRight="60dp"
        android:text="중량"
        android:textSize="15dp"
        android:textColor="#000000"
        android:gravity="center" />
    <Button
        android:id="@+id/button_minus_2"
        android:layout_width="5dp"
        android:layout_height="40dp"
        android:text="-"
        android:layout_weight="1" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=""
        android:id="@+id/textView_2"
        android:textSize="16dp"
        android:textColor="#000000"
        android:gravity="center"
        android:layout_weight="3" />
    <Button
        android:id="@+id/button_plus_2"
        android:layout_width="5dp"
        android:layout_height="40dp"
        android:text="+"
        android:layout_weight="1" />
</LinearLayout>
</LinearLayout>

XML부분입니다.
public class listviewbtnAdapter extends BaseAdapter {
    Context context;
    LayoutInflater layoutInflater;
    ArrayList<String> data;

    private int count1 = 1;
    private int count2 = 1;
    public listviewbtnAdapter(Context context, ArrayList<String> data){
        this.context = context;
        this.layoutInflater = LayoutInflater.from(context);
        this.data = data;
    }
    @Override
    public int getCount() {
        return data.size();
    }
    @Override
    public Object getItem(int position) {
        return data.get(position);
    }
    @Override
    public long getItemId(int position) {
        return position;
    }
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View view = layoutInflater.inflate(R.layout.m_home_exercise_do_listview_btn, null);

        TextView textView = view.findViewById(R.id.textView);

        //세트
        TextView textView1 = view.findViewById(R.id.textView_1);
        Button mbutton_1 = view.findViewById(R.id.button_minus_1);
        Button pbutton_1 = view.findViewById(R.id.button_plus_1);

        //중량
        TextView textView2 = view.findViewById(R.id.textView_2);
        Button mbutton_2 = view.findViewById(R.id.button_minus_2);
        Button pbutton_2 = view.findViewById(R.id.button_plus_2);

        textView.setText(data.get(position));


            mbutton_1.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    count1--;
                    textView1.setText(count1);
                }
            });

            pbutton_1.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    count1++;
                    textView1.setText(count1 );
                }
            });

            mbutton_2.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    count2--;
                    textView2.setText(count2 );
                }
            });

            pbutton_2.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    count2++;
                    textView2.setText(count2);
                }
            });
            Intent intent = new Intent(context.getApplicationContext(), exercise_do.class);
            intent.putExtra("count1", count1); 
           intent.putExtra("count1", count2);

        return view;
    }
}

코드부분입니다.

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

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

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

(ಠ_ಠ)
(ಠ‿ಠ)