2010-08-21 3 views
0
private class Task_xmlparse extends AsyncTask<String, Void, Void> { 
    private final ProgressDialog dialog = new ProgressDialog(BlackSheepimage.this); 
    protected void onPreExecute() { 
     this.dialog.setMessage("Loading..."); 
     this.dialog.setCancelable(false); 
     this.dialog.show(); 
    } 

    @Override 
    protected Void doInBackground(String... params) 
    { 
     try { 

      DomFeedParser dom = new DomFeedParser(url); 
      Log.v("thread"," "+url); 
      List<Message_thbnail> l_obj_tnail = new ArrayList<Message_thbnail>(); 
      List<Message_zoom> l_obj_zoom = new ArrayList<Message_zoom>(); 
      l_obj_tnail = dom.parse_tnail(); 
      l_obj_zoom = dom.parse_zoom(); 
      VAL1 = new String[l_obj_tnail.size()]; 
      VAL2= new String[l_obj_zoom.size()]; 
      //Log.v("bufersize",""+bufferarray.length); 
      //Log.v("val2Length",""+VAL1.length); 
      Iterator<Message_thbnail> it_tnail = l_obj_tnail.iterator(); 
      while (it_tnail.hasNext()) 
      { 
       k++; 
       Log.v("Zoo",""+zo); 
       VAL1[k] = it_tnail.next().toString(); 
       bufferarray[zo]=VAL1[k]; 
       Log.v("Buffer",bufferarray[zo]); 
       zo++; 


      } 
      Log.v("threadbuffsize",""+zo); 
      Iterator<Message_zoom> it_zoom = l_obj_zoom.iterator(); 
      Log.v("zoosize", ""+l_obj_zoom.size()); 
      while (it_zoom.hasNext()) { 
       k1++; 

       Log.v("Zoo1",""+zo1); 
       VAL2[k1] = it_zoom.next().toString(); 
       zoombufferarray[zo1]=VAL2[k1]; 
       zo1++; 
       Log.v("tag",VAL2[k1].toString()); 

      } 

      thumbnail_disp=bufferarray; 
      grid= new GridAdapter(BlackSheepimage.this,bufferarray); 
     } catch (Exception e) { 
      //Log.v("Image", "dom" + e); 
     } 

     return null; 
    } 


protected void onPostExecute(Void result) { 

    lay2_gv.setAdapter(grid); 
    if (this.dialog.isShowing()) { 
     this.dialog.dismiss(); 
    } 
} 

} 
public void onCreate(Bundle savedInstanceState) 
{ 
    url="http://www.theblacksheeponline.com/partypics.php?page="+pageno; 
    super.onCreate(savedInstanceState); 
    lay2_gv = (GridView) findViewById(R.id.jr_lookbook_grid); 
    new Task_xmlparse().execute(url); 
    tv = (TextView) findViewById(R.id.next_pg); 
    tv.setOnClickListener(this) ; 
    lay2_gv.setOnItemClickListener(this); 
} 
public void onClick(View arg0) { 


     pageno++; 
     Log.v("pge",""+pageno); 
     lay2_gv.setVisibility(GridView.GONE); 
     url="http://www.theblacksheeponline.com/partypics.php?page="+pageno; 
     //Log.v("URL",url); 
     new Task_xmlparse().execute(url); 

} 

답변

0

Intent은 여기에 적합하다고 생각하지 않습니다. 수집 할 때 xml을 파싱하여 이미지를 표시하고 사용자가 버튼을 클릭 할 때 더 많은 이미지를 추가 할 수 있기를 원합니다. 그래서 여기에 당신이해야 할 것입니다 :

당신의 버튼의 onClick 방법, 당신은 당신이 당신의 URL에 HTTP 요청을하는에 AsyncTask 또는 배경 Thread를 시작해야합니다.

이것은 다음 이미지의 xml을 가져오고, 구문 분석하고 백그라운드 스레드에서 이미지를 준비합니다. 그런 다음 다시 메인 스레드에서

(예를 들어 onClick 방법), 당신이이 이미지를 잡아, 당신의 GridView의 어댑터에 추가하고 GirdView을 업데이트 notifyDataSetChanged()를 호출합니다. 그리고 그 트릭을해야합니다.

+0

안녕하세요 귀하의 개념을 따르지 만 지금 버튼을 클릭하면 AsyncTask를 호출하고 URL을 변경하고 Asynctask를 호출하고 URL을 전달하지만 버튼을 클릭하면 gridview에 출력이 반영되지 않았습니다. gridview 디스플레이 처음 16 개의 이미지가 gridview에 표시되었습니다. 이 문제를 해결하는 방법 – sivaraj

+0

문장에서 구두점을 사용 해보십시오. 이해하기가 정말 어렵습니다. 그리고 글쎄, 당신의 의견과 함께, 나는 당신을 도울 수 없다, 당신은 더 자세히 필요합니다. 게시물에 코드를 추가하면 AsyncTask에서 뭔가 잘못되어있을 수 있습니다. – Sephy

+0

공개 무효 onClick (보기 arg0) { \t \t \t \t pageno ++; \t \t \t lay2_gv.setVisibility (GridView.GONE); \t \t \t url = "http://www.theblacksheeponline.com/partypics.php?page="+ pageno; \t \t 새 Task_xmlparse(). execute (url); \t \t lay2_gv.setVisibility (GridView.VISIBLE); \t \t \t \t \t} 내가 클릭 방법에 사용이 코드,하지만 난 .. gridgiew 더 많은 이미지를 얻을하지 않았다 – sivaraj

관련 문제