2010-08-21 54 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方法,你应该开始一个AsyncTask或背景Thread,在其中您在您的网址http请求。

这将让你的下一个图像的XML,你分析它,并在你的后台线程准备图像。

然后回到你的主线程(在onClick方法实例),你抢这些照片,将它们添加到您的GridView的适配器,并呼吁notifyDataSetChanged()更新您GirdView。这应该可以做到。

+0

,您好我跟着你的概念,但现在我打电话的AsyncTask按钮点击网址变更和呼叫的AsyncTask,并通过URL当我点击按钮,但没有反映在GridView的输出,GridView控件显示前16个图像是显示在GridView的我能做些什么如何解决这个问题 – sivaraj 2010-08-21 11:29:54

+0

请尝试在你的句子中使用标点符号,这真的很难理解你。而且,只要您的评论,我无法帮助您,您需要详细说明。在你的文章中添加一些代码,你可能会在你的AsyncTask中出错。 – Sephy 2010-08-21 11:34:20

+0

public void onClick(View 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=” +您做生意; \t \t new Task_xmlparse()。execute(url); \t \t lay2_gv.setVisibility(GridView.VISIBLE); \t \t \t \t \t} 此代码我用点击的方法,但我没有gridgiew获得更多的图像.. – sivaraj 2010-08-21 13:15:33