我試圖實現從適配器列表中打開具有相關信息的自定義對話框。在這裏我使用onclicklistener,它工作正常我得到自定義對話框,我的問題是我沒有得到正確的信息。如果我點擊對話框中列表中的任何項目,它將顯示最後一個項目的詳細信息。Onitemclick getview方法的監聽器
在生成列表時它顯示了logcat中的位置。但是當我試圖點擊細節textview它正在採取最後一個項目的位置。
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View v = convertView;
if(v == null){
LayoutInflater vl = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vl.inflate(R.layout.listItem, null);
}
Fields o = results.get(position);
if (o != null) {
TextView iv = (TextView)v.findViewById(R.id.toptext);
TextView tv_link = (TextView)v.findViewById(R.id.toptext1);
ImageView tv_Image = (ImageView)v.findViewById(R.id.Locimage);
tv_link.setText("Details >>");
tv_link.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Dialog dialog = new Dialog(mContext);
dialog.setContentView(R.layout.locationdetails);
dialog.setTitle("Title");
System.out.println("Position "+pos);
TextView LocName = (TextView) dialog.findViewById(R.id.LocDescName);
LocName.setText(o.getLocationName());
ImageView LocDescImage = (ImageView) dialog.findViewById(R.id.LocDescImage);
Bitmap bitmap;
try {
bitmap = BitmapFactory.decodeStream((InputStream) new URL(o.getLocationImage()).getContent());
LocDescImage .setImageBitmap(bitmap);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
dialog.show();
}
});
}
DbLoc.close();
return v;
}
}
非常感謝Sunriser,它解決了我的問題。我現在得到正確的結果。 – atluriajith