개발하려는 어플리케이션은 더치페이 계산기입니다.

스피너를 통해서 받은 입력값을 Int형으로 변환한 후

포문과 List View(AdapterView)를 이용해서

입력받은 숫자만큼

EditBox01 EditBox02 Button

이런 리니어 객체를 xml에서 가져와서 추가해 주는데요

여기서 의문점이

xml상에 같은 id를 가지고 있는 뷰들을 어떻게 다르게 식별하여 제어할 수 있는지가 궁금합니다 .. ㅠㅠ

각각의 라인마다 버튼을 누르면 EditBox01과 EditBox02가 setText 되어야 하는데 ,,,이걸 제어할 수 있는 루트를 모르겠네요 ...ㅠㅠ

아래에 소스도 올립니다.


package exam.DutchPay;

import android.app.Activity;
import android.content.*;
import android.graphics.*;
import android.os.Bundle;
import android.view.*;
import android.widget.*;
import android.widget.AdapterView.OnItemSelectedListener;
import java.util.*;

public class DutchPay extends Activity {
    /** Called when the activity is first created. */
 ArrayAdapter<CharSequence> adspin;
    ArrayList<ListItem> arItem;   
    Context context;
    String temp;
    int i;

    ListItem[] temp_mi = new ListItem[6];
   
    @Override
 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        context = this;

        Spinner spin = (Spinner)findViewById(R.id.spinner);
       
        adspin = ArrayAdapter.createFromResource(this, R.array.number, android.R.layout.simple_spinner_item);
        adspin.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spin.setAdapter(adspin);
       
        spin.setOnItemSelectedListener(new OnItemSelectedListener() {
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id){ 
                arItem = new ArrayList<ListItem>();
                ListItem mi;
                
                temp = adspin.getItem(position).toString();
                
                for(i=0;i<Integer.valueOf(temp);i++){
                   mi = new ListItem("이름:", "영희", "낸돈:", "0", "원","수정");
                    arItem.add(mi);
                }
             
                MyListAdapter MyAdapter = new MyListAdapter(context, R.layout.list, arItem);
                           
                ListView MyList;
                MyList=(ListView)findViewById(R.id.list);
                MyList.setAdapter(MyAdapter);
            }          
            public void onNothingSelected(AdapterView<?> parent) {
           
            }
         });
   
  }
}

class ListItem {
 ListItem(String aText01, String aEdit01, String aText02, String aEdit02, String aText03, String aBtn){
  Text01 = aText01;
  Edit01 = aEdit01;
  Text02 = aText02;
  Edit02 = aEdit02;
  Text03 = aText03;
  Btn = aBtn;  
 }
 String Text01;
 String Edit01;
 String Text02;
 String Edit02;
 String Text03;
 String Btn; 
}

class MyListAdapter extends BaseAdapter {
 
 Context maincon;
 LayoutInflater Inflater;
 ArrayList<ListItem> arSrc;
 int layout;
 
 public MyListAdapter(Context context, int alayout, ArrayList<ListItem> aarSrc) {
  maincon = context;
  Inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
  arSrc = aarSrc;
  layout = alayout;
 }
 
 public int getCount(){
  return arSrc.size();
 }
 
 public String getItem(int position){
  return arSrc.get(position).Edit01;
 }
 
 
 public long getItemId(int position){
  return position;
 }
 
 public View getView(int position, View convertView, ViewGroup parent){
  
  final int pos = position;
  
  if(convertView == null){
   convertView = Inflater.inflate(layout, parent, false);   
  }
   
  TextView txt01 = (TextView)convertView.findViewById(R.id.list_text01);
  txt01.setText(arSrc.get(position).Text01);
  
  EditText edit01 = (EditText)convertView.findViewById(R.id.list_edit01);
  edit01.setText(arSrc.get(position).Edit01);
  
  TextView txt02 = (TextView)convertView.findViewById(R.id.list_text02);
  txt02.setText(arSrc.get(position).Text02);
  
  EditText edit02 = (EditText)convertView.findViewById(R.id.list_edit02);
  edit02.setText(arSrc.get(position).Edit02);

  Button btn01 = (Button)convertView.findViewById(R.id.list_btn);
  
  btn01.setOnClickListener(new Button.OnClickListener() {
   public void onClick(View v) {    

   }
     });
  
  return convertView;
  
 }
}