0

Это мой класс ContactsAdapter, из которого отображается список с флажком. Здесь можно получить тег отмеченных элементов. Существует еще один класс FanFragment, в котором при нажатии кнопки (ContactList) я должен получить все значения Tag в массиве отмеченных элементов.Получить значения тегов в массиве отмеченных элементов в android 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

что это за студента? – Munchoo

 Смежные вопросы

  • Нет связанных вопросов^_^