마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

getView() 호출에 대해서 조언 좀 부탁드립니다 ㅠㅜ

0 추천
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 클릭시마다 버튼이 보이고 안보이고 이벤트를 줄려는건데

그에따라 데이터셋도 변경할려고 하고요.

근데 버튼 보여지는 위치가 들쑥날쑥 합니다.

고수님들 조언 제발 부탁드립니다. ㅠㅜ
주숙 (260 포인트) 님이 2016년 2월 4일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...