2017-05-24 1 views
-1

내 대화 상자 안에 GridView 갤러리를 만들었습니다. 이 갤러리에는 페이지가 있지만 지금은 각 대화 상자에 대해 분리 된 대화 상자를 만듭니다. 이 모든 대화 상자 (갤러리 페이지)는 현재 진행 상황 (예 : 4/12 페이지에 있음)과 사진 (각 페이지마다 다른 이미지로드)에 따라 서로 다릅니다. 나는 모든 페이지에 대해 새로운 대화 상자를 만드는 것이 실용적이지 않다고 생각하지만, 단 하나의 대화 상자에서 어떻게해야합니까? 내 대화 상자 코드의대화 상자의 모든 내용을 업데이트하십시오.

하나 :

public void threeChoice() 
    { 
     Collections.sort(photoList = imageReader(photoDir,"1008")); 
     inflater = this.getLayoutInflater(); 

     // Dialog layout 
     v = inflater.inflate(R.layout.dialog_choice, null); 

     progressDialog = (ProgressBar)v.findViewById(R.id.progressBar); 
     //progressDialog = new ProgressBar(mContext); 
     progressDialog.setMax(7); 
     progressDialog.setProgress(3); 


     gV = (GridView) v.findViewById(R.id.gridView); 

     // GridAdapter (Pass context and files list) 
     GridAdapter adapter = new GridAdapter(this, photoList); 

     // Set adapter 
     gV.setAdapter(adapter); 



     final AlertDialog.Builder builder2 = new AlertDialog.Builder(this); 
     builder2.setTitle("Album Page: 1008"); 

     builder2.setView(v); 
     builder2.setPositiveButton("NEXT", new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialog, int which) 
      { 
       NextPage(); //<-- go to next page 
      } 
     }).setNegativeButton("BACK", new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialog, int which) 
      { 
       PreviousPage(); //<-- Back to previous page 
      } 
     }); 

     gV.setOnItemClickListener(new AdapterView.OnItemClickListener() 
     { 
      public void onItemClick(AdapterView<?> parent, View v, int position, long id) 
      { 
       Intent intent = new Intent(getApplicationContext(), PhotoDetails.class); 
       intent.putExtra("image", photoList.get(position)); 
       startActivity(intent); 
      } 
     }); 

     builder2.setCancelable(false); 
     final AlertDialog dialog = builder2.create(); 
     dialog.show(); 
    } 

답변

0

당신은 NextPage(View v);PreviousPage(View v);NextPage();PreviousPage();의 서명을 변경해야합니다. 그런 다음 Dialog 레이아웃 v로 호출하고이 레이아웃을 함수에서 직접 업데이트 할 수 있습니다.

+0

하지만 2 개의 레이아웃이 있습니다. 그리드와 두 번째로 항목 (ImageView)이 있습니다 (View V). imageReader 함수를 호출하고 업데이트 어댑터와 같은 나머지 작업을 수행해야하는 경우 –

+0

v 모두 포함하지 않습니다. 대화 상자에 표시되는보기? – Firerazzer

관련 문제