2017-01-24 14 views
0

나는 이미지 목록을 표시하는 ListView이있다. 그 이미지를 클릭하면 ListViewAlertDialog에 이미지를 표시하고 싶습니다.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

답을 고맙습니다 .I NullPointerException이 발생합니다. – user7357013

+0

null 포인터 예외가 발생하는 곳 –

+0

목록보기에서 항목을 클릭하면 – user7357013

0

귀하에 AlertDialog의 레이아웃에 하나 개의 레이아웃 이미지의 파일이 생성. 대화 상자를 인스턴스화하면 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.