나는 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
}
});
}
}
}
- 먼저 내가 그들에 대한 작업을 수행하기 위해 데이터베이스에서 모든 행 항목에있는 ID를 연결하려는. 그래서 제가 한 방법이 맞는지 틀린 지 확인하십시오.
- 위의 코드에서 두 번째로 모든 행에 제목과 문자열로 문자열이 있습니다. 항목입니다. 각 스위치에 onClickListener를 설정하고 싶습니다. 스위치는 포인트 1과 연관된 행 항목의 ID를 가져 오려고합니다.
감사합니다. 문제를 제대로 설명하지 않았다면 알려주십시오.
을 여기에 예입니다? 이미 행 번호 (위치)를 얻을 수 있습니까? – Darpan
글쎄 스위치를 토글 할 때 rowitem과 관련된 데이터베이스에서 어떤 동작을 수행하고 싶습니다. 그것을 성취 할 다른 방법이 있습니까? –
각 ID에 태그를 설정하고 getTag()가이를 인식합니까? – Darpan