【发布时间】:2017-01-20 05:59:25
【问题描述】:
我正在使用自定义适配器将数据添加到扩展 ResourceCursorAdapter 的列表视图。我需要处理列表视图中的按钮单击事件。每个列表包含 2 个按钮。单击这些按钮时如何显示 alertdailog...
我的ListViewAdapter.java 代码...
class ListViewAdapter extends ResourceCursorAdapter {
ListViewAdapter(Context context, int layout, Cursor c) {
super(context, layout, c);
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
TextView fname = (TextView) view.findViewById(R.id.fname);
TextView lname = (TextView) view.findViewById(R.id.lname);
TextView gender=(TextView)view.findViewById(R.id.gender);
Button edit=(Button)view.findViewById(R.id.button3);
Button start=(Button)view.findViewById(R.id.button4);
ImageView img=(ImageView)view.findViewById(R.id.profile_image);
fname.setText(cursor.getString(2));
lname.setText(cursor.getString(3));
gender.setText(cursor.getString(5));
Bitmap bmp = BitmapFactory.decodeFile(cursor.getString(10));
Bitmap thumbBitmap = ThumbnailUtils.extractThumbnail(BitmapFactory.decodeFile(cursor.getString(10)),320,240);
img.setImageBitmap(thumbBitmap);
edit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setMessage("Hello")
.setPositiveButton("Start", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
Intent intent = new Intent(getApplicationContext(), Consultation.class);
startActivity(intent);
}
})
.setNegativeButton("Edit", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
Intent intent = new Intent(getApplicationContext(), AddPatient.class);
startActivity(intent);
}
})
.setNeutralButton("Cancel",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
});
AlertDialog d = builder.create();
d.setTitle("Patient Details");
d.show();
d.setCancelable(false);
}
});
}
代码在 alertdialog 上显示错误... 我该如何解决这个问题?
【问题讨论】:
-
为什么在 AlertDialog.Builder 中将 MainActivity.this 作为上下文传递?
-
你遇到了什么错误
-
@Kinjal 可能是适配器被写在 MainActivity 作为内部类。