0

이것은 Checkbox로 목록을 표시하고있는 ContactsAdapter 클래스입니다. 여기에 체크 된 항목의 태그를 가져올 수 있습니다. 버튼 (ContactList)을 클릭 할 때 체크 된 항목의 배열에서 Tag의 모든 값을 가져와야하는 다른 클래스 FanFragment가 있습니다.안드로이드 listview에서 체크 된 항목의 배열로 태그 값 가져 오기

public class ContactsAdapter extends AbsAdapter { 

TextView contactId = null; 
TextView contactDesc = null; 
static boolean checked[]; 
String[] arrPath; 
int selectedCount; 
CheckBox saveddesc; 

public ContactsAdapter(Activity activity, ArrayList<RantModel> contenList) { 
    super(activity, contenList); 
} 

@Override 
public View getView(int position, View convertview, ViewGroup parent) { 
    // TODO Auto-generated method stub  
    super.getView(position, convertview, parent); 
    final ViewHolder holder; 

    LayoutInflater inflater = (LayoutInflater) mActivity 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    if(convertview == null){ 
    holder = new ViewHolder(); 
    convertview = inflater.inflate(R.layout.contacts_row_layout, parent, 
      false); 
    try { 
     holder.contactId = (TextView) convertview.findViewById(R.id.tvListId); 
     holder.contactDesc = (TextView) convertview.findViewById(R.id.tvListName); 
     holder.saveddesc = (CheckBox) convertview.findViewById(R.id.ckList); 
    } catch (Exception e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    convertview.setTag(holder); 
    } else { 

     holder = (ViewHolder) convertview.getTag(); 
    } 


    holder.saveddesc.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 

      if(((CompoundButton) v).isChecked()){ 

       String ale = (String) holder.saveddesc.getTag(); 

       System.out.println(ale); 
      } 
     } 
    }); 

    RantModel ContactModel = mListContent.get(position); 
    holder.contactDesc.setText(ContactModel.contactName); 
    holder.contactId.setText(ContactModel.contactId); 
    holder.saveddesc.setId(position); 
    holder.saveddesc.setTag(ContactModel.contactId); 
    holder.id = position; 

    return convertview; 
} 

class ViewHolder{ 

    public int id; 
    public CheckBox saveddesc; 
    public TextView contactDesc; 
    public TextView contactId; 

} 

FanFragment.class

public class FanFragment extends AbsFragment { 

ContactsAdapter mFanContacts; 
ArrayList<RantModel> mContactList; 
String url; 
ContactListService contactsWeb; 
private ProgressDialog mProgressDialog = null; 
private boolean checked[]; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    mContactList = new ArrayList<RantModel>(); 
    mProgressDialog = new ProgressDialog(getActivity()); 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    return super.onCreateView(inflater, container, savedInstanceState); 
} 
@Override 
public void onViewCreated(View view, Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onViewCreated(view, savedInstanceState); 

    mContactList.removeAll(mContactList); 
    listView.setAdapter(null); 
    url = ""; 
    contactsWeb = new ContactListService(); 
    contactsWeb.execute(); 

    mFanthemContacts = new ContactsAdapter(mActivity, mContactList); 
    listView.setAdapter(mFanthemContacts); 

    // 
    ContactList.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View v) { 
    // TODO Auto-generated method stub 

    } 
    }); 

} 

답변

0

당신은이 작업을 수행 할 수 있습니다. 나를 위해 일했다. 프래그먼트에서 버튼 클릭 또는 트리거가 발생한 시점에이 작업을 수행하십시오.

for (int i = 0; i < mContactList.getCount(); i++) { 

        View v = listView.getAdapter().getView(i, null, null); 
      Viewholder holder = (ViewHolder) v.getTag(); 
//Check condition for checkbox and insert into new array 
} 

희망이 도움이됩니다.

+0

그 studentAttendanceHolder 란 무엇입니까? – Munchoo