ListView의 각 행에 있는 EditText의 값을 ListView 밖의 버튼을 이용하여 출력하고자 합니다.

 class OrderAdapter extends BaseAdapter {
  Context maincon;
  //LayoutInflater Inflater;
  ArrayList<OrderItem> list;
  int layout;
  int n;
  //String m;
  private String plz;
  
  public OrderAdapter(Context context, int alayout, ArrayList<OrderItem> alist) {
   maincon = context;
   //Inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
   list = alist;
   layout = alayout;
  }
  
  /////////
  
  public View getView(int position, View convertView, ViewGroup parent) {
   // TODO Auto-generated method stub
   final int pos = position;
   if(convertView==null) {
    LayoutInflater Inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    //convertView = Inflater.inflate(layout, null);
    convertView = Inflater.inflate(layout, parent, false);
   }
   
   ImageView img = (ImageView)convertView.findViewById(R.id.img);
   img.setImageResource(list.get(position).Icon);
   
   TextView txt = (TextView)convertView.findViewById(R.id.text);
   txt.setText(list.get(position).menu);
   
   final EditText edit = (EditText)convertView.findViewById(R.id.edit);
   //edit = (EditText)convertView.findViewById(R.id.edit);
   edit.setText("0");
   //edit.setInputType(InputType.TYPE_CLASS_NUMBER);
   
   //final OrderItem item = list.get(pos);
   //edit.setText(item.getNum());
   Button btn_plus = (Button)convertView.findViewById(R.id.plus);
   btn_plus.setOnClickListener(new Button.OnClickListener() {
    public void onClick(View v) {
     String num;
     num = edit.getText().toString();
     //int n;
     n = Integer.parseInt(num);
     n += 1;
     //Log.d("logTest","n: "+Integer.toString(n));
     
     edit.setText(Integer.toString(n));     
     plz = edit.getText().toString();
     Log.d("logTest","plz+: "+plz);
    }
   });   
   
   Button btn_minus = (Button)convertView.findViewById(R.id.minus);
   btn_minus.setOnClickListener(new Button.OnClickListener() {
 
    public void onClick(View arg0) {
     // TODO Auto-generated method stub
     String num;
     num = edit.getText().toString();
         
     //int n;
     if(!num.equals("0")) {
      n = Integer.parseInt(num);
      n -= 1;
      edit.setText(Integer.toString(n));
      plz = edit.getText().toString();
      Log.d("logTest","plz-: "+plz);
     }     
    }
   });
   Toast.makeText(ListActivity.this, plz, Toast.LENGTH_SHORT).show();
   Log.d("logTest", "z: "+plz);
   
   Button btn_order = (Button)convertView.findViewById(R.id.order);
   btn_order.setOnClickListener(new Button.OnClickListener() {
    public void onClick(View v) {
     // TODO Auto-generated method stub
     String str = list.get(pos).menu +"/"+edit.getText().toString();
     
     //TCPclient tp = new TCPclient(str);
     //tp.run();
     if(!edit.getText().toString().equals("0"))
      showDialog(0, str);
     else {
      AlertDialog.Builder builder = new AlertDialog.Builder(ListActivity.this);
         builder.setTitle("주문 확인");
         builder.setMessage("수량을 선택해주세요.");
         builder.setPositiveButton("확인", new DialogInterface.OnClickListener() {
       
       public void onClick(DialogInterface dialog, int which) {
        // TODO Auto-generated method stub  
       }
      }).show();
     } 
     //Toast.makeText(maincon, str, Toast.LENGTH_SHORT).show();
    }  
   });
   return convertView;
  }
 
  public int getCount() {
   // TODO Auto-generated method stub
   return list.size();
  }
  
  public String getItem(int position) {
   // TODO Auto-generated method stub
   return list.get(position).menu;
  }
  public long getItemId(int position) {
   // TODO Auto-generated method stub
   return position;
  }
  
  public String getNum() {
   //return list.get(position).num;
   return plz;
  }
 }

plz라는 인스턴스 변수를 사용해서 값을 넘겨주려고 했는데요,

EditText의 초기값은 0이며 +,-버튼을 이용하여 값이 변경됩니다,

변수 사용법이 잘못되었는지 ㅠ_ㅠ 리스너 밖을 나오면서 plz가 값을 잃고맙니다..

그래서 onCreate 내에서 plz를 반환하는 메소드인 getNum()을 이용하여 EditText내의 값을 가져오고자 했는데..

값을 잃고 null 값이 넘어옵니다..어떻게하면 좋을까요..

 

그리고 저는 각 행마다의 EditText의 값이 필요한데, 제가 지금 하는식으로 하면

plz라는 변수가 각 행의 EditText의 값을 갱신할때마다 그 특정행에 맞게 갱신이되어 각 행의 모든 값을 가져올수가 없습니다.

혹시 해결법을 알고계신분은 댓글 달아주세면 감사하겠습니당!!!

 

처음 질문하는것이고 공지사항 숙지했습니다^-^