java Android onActivityResult设置选定行
在弹出窗口中尝试从列表视图中检测所选行时,我遇到了一些问题。这里是我再次单击该行,然后打开另一个意图的部分:
private class ListAdapter extends BaseAdapter {
LayoutInflater inflater;
ViewHolder viewHolder;
public ListAdapter(Context context) {
inflater = LayoutInflater.from(context);
}
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = inflater.inflate(R.layout.attendee_listview_row,
null);
viewHolder = new ViewHolder();
viewHolder.txt_dName = (TextView) convertView
.findViewById(R.id.txtDisplayName);
viewHolder.btn_scan = (ImageView) convertView.findViewById(R.id.btnScan);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.txt_dName.setText(attendeeList.get(position)
.getAccountName().trim());
viewHolder.btn_scan.setOnClickListener(new OnClickListener(){
public void onClick(View v){
Intent intent = new Intent(
"com.google.zxing.client.安卓.SCAN");
intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
startActivityForResult(intent, 0);
}
});
return convertView;
}
}
然后当onActivityResult()时:
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode == 0) {
if (resultCode == Activity.RESULT_OK) {
String contents = intent.getStringExtra("SCAN_RESULT");
if(contents.equals("QRCode1")){
}else{
Toast.makeText(context, "QR code does not match. Please make sure you attended the correct event.",
Toast.LENGTH_LONG).show();
}
} else if (resultCode == Activity.RESULT_CANCELED) {
}
}
}
如果内容是QRCode1,我想对第一行做一些事情。如果是QRCode2,那么我想对第二排做点什么
但是,我不确定如何获取行号。我应该从onClick传过来吗
有什么想法吗?提前谢谢
# 1 楼答案
为什么不在活动/片段中的ListView上使用setOnItemClickListener
在那里,您将有一个方法来单击并获取所单击项目的位置