반응형
개요
이번에는 리스트뷰에 등록되어있는 아이템을 get메서드를 이용하여 가져오는 방법에 대해서 알아보도록 하겠습니다.
아이템 Class
public class NewLog {
String txt_time;
String txt_point;
String txt_player;
public NewLog(String txt_time,String txt_point,String txt_player) {
this.txt_time = txt_time;
this.txt_point = txt_point;
this.txt_player = txt_player;
}
public String getTxt_time() {
return txt_time;
}
public String getTxt_point() {
return txt_point;
}
public String getTxt_player() {
return txt_player;
}
public void setTxt_time(String txt_time) {
this.txt_time = txt_time;
}
public void setTxt_point(String txt_point) {
this.txt_point = txt_point;
}
public void setTxt_player(String txt_player) {
this.txt_player = txt_player;
}
}
Aadpter Class
public class MylistAdapter extends BaseAdapter {
Context context; // 현재엑티비티를 가리키는 역활!
int layout; // 만들어 놓은 xml을 연결한다.
ArrayList<NewLog> mylog; //메인에서 만들어놨었던 리소를 배열에 넣어준다.
LayoutInflater inflater; // 클릭하면 해당되는 부분만 보여준다.
public MylistAdapter(Context context,ArrayList<NewLog> mylog,int layout) {
this.context = context;
this.layout = layout;
this.mylog = mylog;
this.inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return mylog.size();
}
@Override
public Object getItem(int position) {
return mylog.get(position);
}
@Override
public long getItemId(int position) { return 0; }
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// 보여주는 부분!! 으로 제일중요하다.
if(convertView == null){ // 객체가 없을때는 만들어준다!
convertView = inflater.inflate(layout,parent,false); //true 값이 들어가면 튕김
}
// ImageView iv = convertView.findViewById(R.id.main_img);
// iv.setImageResource(mymessage.get(position).main_img);
TextView tv2 = convertView.findViewById(R.id.txt_time);
tv2.setText(mylog.get(position).txt_time);
TextView tv3 = convertView.findViewById(R.id.txt_player);
tv3.setText(mylog.get(position).txt_player);
final TextView tv4 = convertView.findViewById(R.id.txt_point);
tv4.setText(mylog.get(position).txt_point);
Button remove = convertView.findViewById(R.id.btn_remove);
remove.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MainActivity.mylog1.remove(MainActivity.mylog1.get(position));
for (int i = 0; i <= MainActivity.mylog1.size() - 1; i++) {
if(MainActivity.mylog1.get(i).txt_point.substring(2).equals("Point")) {
String strpoint = MainActivity.mylog1.get(i).txt_point.substring(0,1);
MainActivity.sumpoint += Integer.parseInt(strpoint);
}
else if(MainActivity.mylog1.get(i).txt_point.substring(2).equals("Advantage")) {
String strpoint = MainActivity.mylog1.get(i).txt_point.substring(0,1);
MainActivity.p1_add_list += Integer.parseInt(strpoint);
}
else if(MainActivity.mylog1.get(i).txt_point.substring(2).equals("Penalty")) {
String strpoint = MainActivity.mylog1.get(i).txt_point.substring(0,1);
MainActivity.p1_pe_list += Integer.parseInt(strpoint);
}
else if(MainActivity.mylog1.get(i).txt_point.substring(2).equals("Point_")) {
String strpoint = MainActivity.mylog1.get(i).txt_point.substring(0,1);
MainActivity.sumpoint2 += Integer.parseInt(strpoint);
}
else if(MainActivity.mylog1.get(i).txt_point.substring(2).equals("Advantage_")) {
String strpoint = MainActivity.mylog1.get(i).txt_point.substring(0,1);
MainActivity.p2_add_list += Integer.parseInt(strpoint);
}
else if(MainActivity.mylog1.get(i).txt_point.substring(2).equals("Penalty_")) {
String strpoint = MainActivity.mylog1.get(i).txt_point.substring(0,1);
MainActivity.p2_pe_list += Integer.parseInt(strpoint);
}
}
notifyDataSetChanged();
MainActivity.txt_p1_point.setText(Integer.toString(MainActivity.sumpoint));
MainActivity.txt_p1_add.setText(Integer.toString(MainActivity.p1_add_list));
MainActivity.txt_p1_pe.setText(Integer.toString(MainActivity.p1_pe_list));
MainActivity.txt_p2_point.setText(Integer.toString(MainActivity.sumpoint2));
MainActivity.txt_p2_add.setText(Integer.toString(MainActivity.p2_add_list));
MainActivity.txt_p2_pe.setText(Integer.toString(MainActivity.p2_pe_list));
MainActivity.sumpoint =0;
MainActivity.p1_add_list=0;
MainActivity.p1_pe_list=0;
MainActivity.sumpoint2 =0;
MainActivity.p2_add_list =0;
MainActivity.p2_pe_list =0;
}
});
return convertView;
}
}
여기서 remove 버튼을 클릭하게 되면 MainActivity에 있는 변수들에 적용시키는 것입니다.
메인에서는 물론 Static으로 선언이 되어있어야 합니다.
MainActivity Class
static ArrayList<NewLog> mylog1 = new ArrayList<>();
static MylistAdapter myListViewAdapter;
MainActivity.mylog1.add(new NewLog(txt_timer.getText().toString(),Integer.toString(3)+" Point_",p2.getText().toString()));
MainActivity.myListViewAdapter.notifyDataSetChanged();
for (int i = 0; i <= mylog1.size() - 1; i++) {
if(mylog1.get(i).txt_point.substring(2).equals("Point_")) {
String strpoint = mylog1.get(i).txt_point.substring(0, 1);
sumpoint2 += Integer.parseInt(strpoint);
}
}
txt_p2_point.setText(Integer.toString(sumpoint2));
sumpoint2 =0;
이부분이 리스트에 담겨있는 아이템의 특정 부분(point)을 전부 가져와서 합해주는 코드입니다.
MainActivity.mylog1.add(new NewLog(txt_timer.getText().toString(),Integer.toString(4)+" Point_",p2.getText().toString()));
MainActivity.myListViewAdapter.notifyDataSetChanged();
for (int i = 0; i <= mylog1.size() - 1; i++) {
if(mylog1.get(i).txt_point.substring(2).equals("Point_")) {
String strpoint = mylog1.get(i).txt_point.substring(0, 1);
sumpoint2 += Integer.parseInt(strpoint);
}
}
txt_p2_point.setText(Integer.toString(sumpoint2));
sumpoint2 =0;
이 부분은 지워준후 특정 부분을 전부 가져와서 합해주는 코드입니다.
이상으로 리스트뷰의 아이템을 가져오고 어뎁터에서 컨트롤하는 방법을 알아보았습니다.
반응형
'안드로이드 > Andorid(안드로이드)' 카테고리의 다른 글
안드로이드 EditText InputFilter() 특정 글자만 입력받게 하기 (1) | 2019.12.18 |
---|---|
Android (안드로이드 Handler 사용) (1) | 2019.12.08 |
Android(안드로이드 Notification 알림) (0) | 2019.12.04 |
Android (안드로이드 카운트다운 Timer) (0) | 2019.12.02 |
Android (안드로이드 xml 사이즈 layout_weight 조절) (0) | 2019.12.02 |