listview上的对话框单击Android 2.3
在显示的对话框中显示“自定义位图图像”时出现问题。图像不为空。我检查了调试模式,并且我的listview已经显示了它的图像 我的主要问题是“我是否错过了一个要求或做了什么 “错了吗?”。请原谅我这一次。我第一次使用对话框 我还想补充一点,对话框在单击时不会显示 单击“我的生成”对话框listview上的对话框单击Android 2.3,android,xml,dialog,Android,Xml,Dialog,在显示的对话框中显示“自定义位图图像”时出现问题。图像不为空。我检查了调试模式,并且我的listview已经显示了它的图像 我的主要问题是“我是否错过了一个要求或做了什么 “错了吗?”。请原谅我这一次。我第一次使用对话框 我还想补充一点,对话框在单击时不会显示 单击“我的生成”对话框 @Override protected void onListItemClick(ListView l, View v, int position, long id) { // TODO Auto-gene
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, position, id);
Dialog dialog = new Dialog(A_Test4Activity.this);
dialog.setContentView(R.layout.custom_dialog);
dialog.setTitle("Title");
TextView tv = (TextView)findViewById(R.id.data1);
ImageView iv = (ImageView)findViewById(R.id.dialog_image);
try{
Bitmap bm = bm_List.get(position);
iv.setImageBitmap(bm);
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
dialog.show();
}
我的阵列适配listview
class IconicAdapter extends ArrayAdapter<String>{
IconicAdapter() {
super(A_Test4Activity.this, R.layout.row, R.id.label, book_fileName_list);
}
public View getView(int position, View convertView,
ViewGroup parent) {
// String[] items = book_fileName_list.toArray(new String[book_fileName_list.size()]);
View row = super.getView(position, convertView, parent);
ImageView icon=(ImageView)row.findViewById(R.id.icon);
TextView author = (TextView)row.findViewById(R.id.book_Author);
TextView bookTitle = (TextView)row.findViewById(R.id.Book_Title);
icon.setImageBitmap(bm_List.get(position));
bookTitle.setText(book_title_list.get(position));
author.setText(List_Author.get(position));
return(row);
}
}
您应该调用活动的showDialog(int)。int值标识一种对话框类型。您必须实现此回调并在此方法(您的对话框)中返回一个对话框对象
你有以下例子:
然后,打电话
showDialog(我的对话)在您的活动中,使用自定义警报对话框对我很有效。正如“为自定义布局使用AlertDialog可让您利用内置AlertDialog功能,如托管按钮、可选列表、标题、图标等”的最后一行所述。
因为我在做一个自定义对话框,而不需要管理多个对话框,所以这对我来说很有效。我相信,如果您有多个对话框,使用onCreateDialog是非常有用的。看看这个例子,它显示了两个可能的对话框,使用整数来区分它们。如果我错了,请纠正我。我只有一个要展示。它只是在图像上给出了一个空值,即使图像存在。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_root"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ImageView
android:id="@+id/dialog_image"
android:layout_width="300px"
android:layout_height="300px"
android:src="@drawable/temp_book"
/>
<ScrollView
android:id="@+id/scroller"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView android:id="@+id/data1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="#FFF"
android:textSize="10sp"
android:text="Data1"
/>
</LinearLayout>
</ScrollView>
<Button
android:id = "@+id/confirm"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="CONFIRM"/>
<Button
android:id = "@+id/close"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="CLOSE"/>
</LinearLayout>
02-23 16:00:02.862: W/TextLayoutCache(2286): computeValuesWithHarfbuzz -- need to force to single run
02-23 16:00:04.495: W/System.err(2286): java.lang.NullPointerException
02-23 16:00:04.495: W/System.err(2286): at test.list.A_Test4Activity.onListItemClick(A_Test4Activity.java:328)
02-23 16:00:04.495: W/System.err(2286): at android.app.ListActivity$2.onItemClick(ListActivity.java:319)
02-23 16:00:04.495: W/System.err(2286): at android.widget.AdapterView.performItemClick(AdapterView.java:292)
02-23 16:00:04.495: W/System.err(2286): at android.widget.AbsListView.performItemClick(AbsListView.java:1058)
02-23 16:00:04.495: W/System.err(2286): at android.widget.AbsListView$PerformClick.run(AbsListView.java:2514)
02-23 16:00:04.495: W/System.err(2286): at android.widget.AbsListView$1.run(AbsListView.java:3168)
02-23 16:00:04.495: W/System.err(2286): at android.os.Handler.handleCallback(Handler.java:605)
02-23 16:00:04.495: W/System.err(2286): at android.os.Handler.dispatchMessage(Handler.java:92)
02-23 16:00:04.495: W/System.err(2286): at android.os.Looper.loop(Looper.java:137)
02-23 16:00:04.495: W/System.err(2286): at android.app.ActivityThread.main(ActivityThread.java:4340)
02-23 16:00:04.495: W/System.err(2286): at java.lang.reflect.Method.invokeNative(Native Method)
02-23 16:00:04.495: W/System.err(2286): at java.lang.reflect.Method.invoke(Method.java:511)
02-23 16:00:04.495: W/System.err(2286): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
02-23 16:00:04.503: W/System.err(2286): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
02-23 16:00:04.503: W/System.err(2286): at dalvik.system.NativeStart.main(Native Method)
protected Dialog onCreateDialog(int id) {
case MY_DIALOG:
Dialog dialog = new Dialog(A_Test4Activity.this);
dialog.setContentView(R.layout.custom_dialog);
dialog.setTitle("Title");
break;
default:
dialog = null;
}
return dialog;
}