개발하려는 어플리케이션은 더치페이 계산기입니다.
스피너를 통해서 받은 입력값을 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;
}
}