Диалог на просмотр списка нажмите Android 2.3 - PullRequest
0 голосов
/ 24 февраля 2012

У меня проблема с отображением моего «Пользовательского растрового изображения» в отображаемом диалоге.Изображение не является нулевым.Я проверил через режим отладки, и мой список уже показывает его изображение.

Мой главный вопрос: «Я пропустил требование или сделал что-то не так?».Пожалуйста, извините меня за это.Я впервые использую диалоги.

Я также хотел бы добавить, что диалоговое окно отображается при нажатии.

Мое поколение при диалоговом окне при нажатии

@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();
}

Мой ArrayAdapter для просмотра списка

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);
                }
    }

My Custom Dialog.xml

<?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>

Забыл поставить ошибку logcat

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)

Ответы [ 2 ]

0 голосов
/ 24 февраля 2012

Использование настраиваемого диалогового окна предупреждения работало для меня. Как указано в последней строке dev «Использование AlertDialog для вашей пользовательской разметки позволяет вам использовать встроенные функции AlertDialog, такие как управляемые кнопки, выбираемые списки, заголовок, значок и т. Д.». , Поскольку я делаю собственный диалог без необходимости управления несколькими диалогами, это сработало для меня.

0 голосов
/ 24 февраля 2012

Вы должны вызвать showDialog (int) из Activity.Значение int определяет тип диалога.Вы должны реализовать этот обратный вызов и вернуть объект диалога в этом методе (ваш диалог).

У вас есть примеры в: http://developer.android.com/guide/topics/ui/dialogs.html

        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;
    }

затем вызовите

showDialog (MY_DIALOG);
в вашей активности

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...