2014-11-04 3 views
0

나는 android를 처음 사용했습니다. 뷰 홀더를 사용하여 Android 애플리케이션에 사용자 정의 ArrayAdapter를 구현했습니다. 내 ArrayAdapter와의 의 getView() 함수는 참조를 위해 다음과 같습니다 : 모든목록의 Android Custom ArrayAdapter - 자바

@Override 
public View getView(int position, View convertView, final ViewGroup parent) { 
    View row = convertView; 
    MyClassViewHolder myClassViewHolder; 
    MyClass myClass; 
    if(row == null) { 
     LayoutInflater inflater = ((Activity)mContext).getLayoutInflater(); 
     row = inflater.inflate(resourceId, parent, false); 
     if(resourceId == R.layout.my_row_item) { 
      myClassViewHolder = new MyClassViewHolder(); 
      myClassViewHolder.title = (EditText) row.findViewById(R.id.title); 
      myClassViewHolder.switch = (Switch) row.findViewById(R.id.switch); 
     } 
    } else { 
     myViewHolder = (MyViewHolder) row.getTag(); 
    } 
    if(resourceId == R.layout.my_row_item) { 
     myClass = (MyClass) myClassList.get(position); //myClassList sent as parameter to constructor of adapter 
     if(myClassViewHolder != null && myClass != null) { 
      myClassViewHolder.title.setText(myClass.getTitle()); 
      myClassViewHolder.switch.setChecked(myClass.isEnabled()); 
      myClassViewholder.id = myClass.getId(); 
      myClassViewHolder.switch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
       @Override 
       public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
        //GET ID OF THE ROW ITEM HERE 
       } 
      }); 
     } 
    } 
} 
  1. 먼저 내가 그들에 대한 작업을 수행하기 위해 데이터베이스에서 모든 행 항목에있는 ID를 연결하려는. 그래서 제가 한 방법이 맞는지 틀린 지 확인하십시오.
  2. 위의 코드에서 두 번째로 모든 행에 제목과 문자열로 문자열이 있습니다. 항목입니다. 각 스위치에 onClickListener를 설정하고 싶습니다. 스위치는 포인트 1과 연관된 행 항목의 ID를 가져 오려고합니다.

감사합니다. 문제를 제대로 설명하지 않았다면 알려주십시오.

+0

을 여기에 예입니다? 이미 행 번호 (위치)를 얻을 수 있습니까? – Darpan

+0

글쎄 스위치를 토글 할 때 rowitem과 관련된 데이터베이스에서 어떤 동작을 수행하고 싶습니다. 그것을 성취 할 다른 방법이 있습니까? –

+0

각 ID에 태그를 설정하고 getTag()가이를 인식합니까? – Darpan

답변

0

각 행 항목에 태그를 설정해야 각 행을 식별 할 수 있습니다.

row.setTag(1); 

및 태그 PIN이하는 - - 각 행에 대해 ID가 필요한 이유

row.getTag(); 
1

네 코드가 잘 보입니다. 두 번째 부분에서는 스위치에서 수신기를 만들어야하고 행에서 ID 양식을 가져와 한 ID에서 다른 ID로 전환해야합니다.

+0

답장을 보내 주셔서 감사합니다. 스위치에서 onCheckedChangeListener를 설정했다는 것을 알 수 있습니다. 그걸 정확하게하는 법을 제게 알려주십시오. 리스너의 목록 항목을 스위치로 참조하려면 어떻게해야합니까? –