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;
}
}
코드부분입니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력