TableList.java
private void makeList(){
int level = 0;
String chkCode = "";
String chkName = "";
String chkRadio = "";
myView = (ListView) this.findViewById(R.id.listView);
itemAdapter = new ItemAdapter(getApplicationContext(),this,dsAllocCheckList);
myView.setAdapter(itemAdapter);
itemAdapter.addDataset(dsAllocCheckList);
itemAdapter.notifyDataSetChanged();
}
Item.java
public class Item {
private int level;
private String chkCode;
private String chkName;
private String chkRadio;
private Dataset chklist;
Item(int level,String chkCode, String chkName , String Radio_YN) {
this.level = level;
this.chkCode = chkCode;
this.chkName = chkName;
this.chkRadio = Radio_YN;
Log.i("레고몽", "레고몽 chkName >>> " +getchkName());
}
Item(Dataset in_Dataset){
this.chklist = in_Dataset;
}
public String getChkCode(int p) { return chklist.getColumnAsString(p, "CHK_CODE"); }
public String getChkName(int p) { return chklist.getColumnAsString(p, "CHK_NAME"); }
public String getchkRadio(int p) { return chklist.getColumnAsString(p, "CHK_RADIO"); }
public void setRadio(String key) { this.chkRadio = key; }
public void setchkRadio(int p , String key) { this.chklist.setColumn(p,"CHK_RADIO",key);}
}
ItemAdapter.java
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View v = convertView;
status_row = position;
if( v == null){
v = ((LayoutInflater) mcontext.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.w_checklist_row, null);
}
lstContents = (TextView) v.findViewById(R.id.lstContents);
RadioMainCheck = (RadioGroup) v.findViewById(R.id.RadioMainCheck);
RadioNormal = (RadioButton) v.findViewById(R.id.RadioNormal);
RadioBad = (RadioButton) v.findViewById(R.id.RadioBad);
btnPicture = (Button) v.findViewById(R.id.btnPicture);
viewVisible = (View) v.findViewById(R.id.viewVisible);
// Tag를 이용하여 데이터와 뷰를 묶습니다.
btnPicture.setTag(myDataset);
RadioMainCheck.setTag(myDataset);
RadioNormal.setTag(myDataset);
RadioBad.setTag(myDataset);
if(myDataset != null) {
lstContents.setText(myDataset.getColumnAsString(position, "CHK_NAME"));
if("Y".equals(myDataset.getColumnAsString(position, "CHK_RADIO"))){
RadioNormal.setChecked(true);
RadioBad.setChecked(false);
btnPicture.setVisibility(View.GONE);
}else{
RadioNormal.setChecked(false);
RadioBad.setChecked(true);
btnPicture.setVisibility(View.VISIBLE);
}
btnPicture.setOnClickListener(this);
RadioNormal.setOnClickListener(this);
RadioBad.setOnClickListener(this);
}
return v;
}
@Override
public void onClick(View v) {
myDataset = (Dataset)v.getTag();
switch (v.getId()){
case R.id.btnPicture:
Toast.makeText(mcontext, myDataset.getColumnAsString(status_row, "CHK_NAME") , Toast.LENGTH_SHORT).show();
Intent intent = new Intent(mcontext, AllocListCheckPicture.class);
if(intent != null){
intent.putExtra("div", Code.ADD_PRODUCT);
tableList.startActivityForResult(intent, Constant.finishPicture);
}
break;
case R.id.RadioNormal:
myDataset.setColumn(status_row, "CHK_RADIO","Y");
this.notifyDataSetChanged();
break;
case R.id.RadioBad:
myDataset.setColumn(status_row, "CHK_RADIO","N");
this.notifyDataSetChanged();
break;
default:
break;
}
}
커스텀리스트뷰 개발중인데요 ㅠㅜ
라디어버튼 Bad 클릭시마다 버튼이 보이고 안보이고 이벤트를 줄려는건데
그에따라 데이터셋도 변경할려고 하고요.
근데 버튼 보여지는 위치가 들쑥날쑥 합니다.
고수님들 조언 제발 부탁드립니다. ㅠㅜ