2017-01-24 43 views
0

我有一個ListView顯示圖像列表。當我點擊ListView中的圖像時,我想要在AlertDialog中顯示圖像。如何在AlertDialog中放置圖像?

使用下面的代碼,我可以在AletDialog中獲得並顯示TextView的文本格式。 但我不知道如何在AlertDialog中顯示圖像。

我提到了很多來源,但沒有什麼幫助。

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
       @Override 
       public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

        TextView c = (TextView) view.findViewById(R.id.textViewname); 
        String value = c.getText().toString(); 

        ImageView i = (ImageView) view.findViewById(R.id.imageView_temp); 

        new AlertDialog.Builder(uploadpage.this). 
          setTitle("title"). 
          setMessage(value). 
          show(); 

        dialog.show(); 
       } 
      }); 

     } 

我的問題是如何被點擊時顯示(內AlertDialog)一ListVIew的特定圖像? 我想顯示被點擊的圖像或項目。

編輯

01-24 14:31:26.504 17180-17180/com.example.prakash.pix91 E/AndroidRuntime: FATAL EXCEPTION: main 
                      Process: com.example.prakash.pix91, PID: 17180 
                      java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources$Theme android.content.Context.getTheme()' on a null object reference 
                       at android.support.v7.app.AlertDialog.resolveDialogTheme(AlertDialog.java:108) 
                       at android.support.v7.app.AlertDialog$Builder.<init>(AlertDialog.java:285) 
                       at com.example.prakash.pix91.uploadpage$6.onItemClick(uploadpage.java:507) 
                       at android.widget.AdapterView.performItemClick(AdapterView.java:310) 
                       at android.widget.AbsListView.performItemClick(AbsListView.java:1145) 
                       at android.widget.AbsListView$PerformClick.run(AbsListView.java:3073) 
                       at android.widget.AbsListView$3.run(AbsListView.java:3910) 
                       at android.os.Handler.handleCallback(Handler.java:746) 
                       at android.os.Handler.dispatchMessage(Handler.java:95) 
                       at android.os.Looper.loop(Looper.java:148) 
                       at android.app.ActivityThread.main(ActivityThread.java:5443) 
                       at java.lang.reflect.Method.invoke(Native Method) 
                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728) 
                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
+1

在對話框中添加自定義視圖。 –

+0

您可以創建一個自定義佈局,從這裏參考:https://developer.android.com/guide/topics/ui/dialogs.html –

+0

請嘗試下面的答案它會解決您的問題 –

回答

2

創建映像一個佈局文件,並給你的警告對話框

AlertDialog.Builder alertdialog = new AlertDialog.Builder(getActivity()); 
    LayoutInflater inflaterr = (LayoutInflater)getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     View viewtemplelayout= inflaterr.inflate(R.layout.imagefile, null); 
     ImageView i = (ImageView) viewtemplelayout.findViewById(R.id.imageView_temp);//and set image to image view 

     alertdialog.setView(viewtemplelayout);//add your view to alert dilaog 
     alertdialog.show() 
+0

謝謝你的答案。我得到一個NullPointerException。 – user7357013

+0

你在哪裏得到空指針異常 –

+0

,同時點擊列表視圖中的項目 – user7357013

0

你AlertDialog的佈局應包括的ImageView來顯示圖像。當你實例化對話框時,你會從ListView傳遞圖像視圖。

ImageView image = new ImageView(getContext()); 
// Set the resource for the image view 
// image.setBitmap(someImageBitmapFromListView); 
// You can also set a drawable using setImageResource(Drawable drawable) on the ImageView 
AlertDialog aDialog = new AlertDialog.Builder(getActivity()) 
     .setView(image) 
     .setPositiveButton(android.R.string.ok,null) 
     .setNegativeButton(android.R.string.cancel, null); 
     .create(); 
aDialog.show(); 

從ListView中提取圖像應該很簡單。如果你只需要顯示圖像,那麼上面的代碼應該讓你開始。如果您想要顯示更多內容,請查看創建自定義對話框的官方指南。

0
You should create your custom layout like this. 

AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this); 
LayoutInflater inflater = this.getLayoutInflater(); 
View dialogView = inflater.inflate(R.layout.your_custom_layout, null); 
dialogBuilder.setView(dialogView); 

ImageView imageview= (ImageView) dialogView.findViewById(R.id.edittext); 
imageview.setImageResource(R.id.image1); 
AlertDialog alertDialog = dialogBuilder.create(); 
alertDialog.show(); 

That's it.