如何在android中从ListView中获取选中复选框的位置
我用标题旁边的复选框创建了自定义的如何在android中从ListView中获取选中复选框的位置,android,listview,checkbox,Android,Listview,Checkbox,我用标题旁边的复选框创建了自定义的列表视图。我想检查一下 列表视图中的复选框 我为从列表视图获取消息创建了以下函数,并使用意图将其发送到另一个列表视图,但我无法移动特定的复选框位置 公共类SpamActivity扩展了AppCompativity{ 列出短信息; 阵列列表sms1; ArrayList al; ListView lv; 复选框; @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceStat
列表视图
。我想检查一下
列表视图中的复选框
我为从列表视图
获取消息创建了以下函数,并使用意图将其发送到另一个列表视图
,但我无法移动特定的复选框
位置
公共类SpamActivity扩展了AppCompativity{
列出短信息;
阵列列表sms1;
ArrayList al;
ListView lv;
复选框;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.messagebox);
lv=(ListView)findViewById(R.id.lvMsg);
复选框=(复选框)findViewById(R.id.checkbox);
sms=新的ArrayList();
al=新阵列列表(0);
大众传播者();
/*SpamActivity SpamActivity=新SpamActivity();
al=空间活动性。al;
//InboxFragment InboxFragment=新的InboxFragment();
//al=inboxfragment.list;
对于(int i=0;iimport java.util.ArrayList;
导入java.util.List;
导入android.content.Context;
导入android.util.SparseBooleanArray;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.view.OnClickListener;
导入android.view.ViewGroup;
导入android.widget.ArrayAdapter;
导入android.widget.CheckBox;
导入android.widget.CompoundButton;
导入android.widget.CompoundButton.OnCheckedChangeListener;
导入android.widget.ImageView;
导入android.widget.RelativeLayout;
公共类SharedContactListAdapter扩展了ArrayAdapter{
私人语境;
私人持票人;
私有SparseBooleanArray mSparseBooleanArray;
私人名单;
公共共享ContactListAdapter(上下文、int资源、,
列出对象){
超级(上下文、资源、对象);
this.context=上下文;
mSparseBooleanArray=新SparseBooleanArray();
//mList=对象;
}
@凌驾
公共联系人SynResponse getItem(内部位置){
返回super.getItem(位置);
}
公共ArrayList getCheckedItems(){
ArrayList mTempArry=新的ArrayList();
对于(int i=0;i
您可以在列表视图上设置“setOnItemClickListener”并获取位置
ListView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// Here you can get the position
}
});
ListView.setOnItemClickListener(新的OnItemClickListener(){
@O
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.util.SparseBooleanArray;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.ImageView;
import android.widget.RelativeLayout;
public class SharedContactListAdapter extends ArrayAdapter<ContactSynResponse> {
private Context context;
private ViewHolder viewHolder;
private SparseBooleanArray mSparseBooleanArray;
private List<ContactSynResponse> mList;
public SharedContactListAdapter(Context context, int resource,
List<ContactSynResponse> objects) {
super(context, resource, objects);
this.context = context;
mSparseBooleanArray = new SparseBooleanArray();
// mList = objects;
}
@Override
public ContactSynResponse getItem(int position) {
return super.getItem(position);
}
public ArrayList<ContactSynResponse> getCheckedItems() {
ArrayList<ContactSynResponse> mTempArry = new ArrayList<ContactSynResponse>();
for (int i = 0; i < mList.size(); i++) {
if (mSparseBooleanArray.get(i)) {
ContactSynResponse data = mList.get(i);
mTempArry.add(data);
}
}
return mTempArry;
}
class ViewHolder {
ImageView profilepic;
ChimmerTextView contactname;
ChimmerTextView contactno;
RelativeLayout completelayout;
CheckBox selectcheckbox;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
LayoutInflater inflator = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflator.inflate(R.layout.sharedcontactlistdata,
parent, false);
viewHolder = new ViewHolder();
viewHolder.profilepic = (ImageView) convertView
.findViewById(R.id.profilepic_image_view);
viewHolder.contactname = (ChimmerTextView) convertView
.findViewById(R.id.contactnameTV);
viewHolder.contactno = (ChimmerTextView) convertView
.findViewById(R.id.contactnoTV);
viewHolder.completelayout = (RelativeLayout) convertView
.findViewById(R.id.completeRL);
viewHolder.selectcheckbox = (CheckBox) convertView
.findViewById(R.id.contact_checkbox);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
ContactSynResponse data = getItem(position);
viewHolder.contactname.setText(data.getName());
viewHolder.contactno.setText(data.getPhone());
viewHolder.selectcheckbox.setTag(position);
viewHolder.selectcheckbox.setOnCheckedChangeListener(new CheckListener(
data, viewHolder.selectcheckbox));
viewHolder.completelayout.setOnClickListener(new ClickListener(data,
viewHolder.selectcheckbox));
return convertView;
}
class CheckListener implements OnCheckedChangeListener {
private CheckBox checkbox;
public CheckListener(ContactSynResponse data, CheckBox checkbox) {
this.checkbox = checkbox;
}
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
if (isChecked) {
checkbox.setButtonDrawable(R.drawable.notification_selected_checkbox);
} else {
checkbox.setButtonDrawable(R.drawable.notification_checkbox);
}
buttonView.setChecked(isChecked);
mSparseBooleanArray.put((Integer) buttonView.getTag(), isChecked);
}
}
class ClickListener implements OnClickListener {
private CheckBox checkbox;
public ClickListener(ContactSynResponse data, CheckBox checkbox) {
this.checkbox = checkbox;
}
@Override
public void onClick(View v) {
if (checkbox.isSelected()) {
checkbox.setChecked(false);
checkbox.setButtonDrawable(R.drawable.notification_checkbox);
mSparseBooleanArray.put((Integer) checkbox.getTag(), false);
} else {
checkbox.setChecked(true);
checkbox.setButtonDrawable(R.drawable.notification_selected_checkbox);
mSparseBooleanArray.put((Integer) checkbox.getTag(), true);
}
}
}
}
ListView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// Here you can get the position
}
});