EX09_08_1.java
上传用户:vip_99
上传日期:2021-03-27
资源大小:61159k
文件大小:4k
源码类别:

android开发

开发平台:

Java

  1. package irdc.ex09_08;
  2. /* import相关class */
  3. import java.net.URL;
  4. import java.util.List;
  5. import java.util.ArrayList;
  6. import android.app.Activity;
  7. import android.app.AlertDialog;
  8. import android.content.DialogInterface;
  9. import android.content.Intent;
  10. import android.os.Bundle;
  11. import android.util.Xml;
  12. import android.view.View;
  13. import android.widget.AdapterView;
  14. import android.widget.GridView;
  15. public class EX09_08_1 extends Activity
  16. {
  17.   private GridView gView;
  18.   private String userId="";
  19.   private List<String[]> li=new ArrayList<String[]>();
  20.   
  21.   @Override
  22.   public void onCreate(Bundle savedInstanceState)
  23.   {
  24.     super.onCreate(savedInstanceState);
  25.     /* 设置layout为albumlist.xml */
  26.     setContentView(R.layout.albumlist);
  27.     
  28.     /* 取得Bundle中的userId */
  29.     Intent intent=this.getIntent();
  30.     Bundle bunde = intent.getExtras();
  31.     userId = bunde.getString("userId");
  32.     /* 调用getAlbumList()取得相簿信息 */
  33.     li=this.getAlbumList(userId);
  34.     /* 设置gView的Adapter为自定义的AlbumAdapter */
  35.     gView=(GridView) findViewById(R.id.myGrid);
  36.     gView.setAdapter(new AlbumAdapter(this,li));
  37.     
  38.     /* 设置GridView的onItemClick事件 */
  39.     gView.setOnItemClickListener(
  40.         new AdapterView.OnItemClickListener() 
  41.     { 
  42.       @Override
  43.       public void onItemClick(AdapterView<?> arg0,View arg1,
  44.                               int arg2,long arg3)
  45.       {
  46.         /* 把账号、相簿ID、相簿名称放入Bundle传给下一个Activity */
  47.         Intent intent = new Intent();
  48.         intent.setClass(EX09_08_1.this,EX09_08_2.class);
  49.         Bundle bundle = new Bundle();
  50.         bundle.putString("userId",userId);
  51.         bundle.putString("albumId",li.get(arg2)[0]);
  52.         bundle.putString("title",li.get(arg2)[2]);
  53.         intent.putExtras(bundle);
  54.         startActivityForResult(intent,1);
  55.       } 
  56.     }); 
  57.   }
  58.   
  59.   /* 解析XML取得相簿信息的method */
  60.   private List<String[]> getAlbumList(String id)
  61.   {
  62.     List<String[]> data=new ArrayList<String[]>();
  63.     URL url = null;
  64.     String path="http://picasaweb.google.com/data/feed/api/user/"
  65.                 +id.trim();
  66.     try
  67.     {
  68.       url = new URL(path);
  69.       /* 以自定义的AlbumHandler作为解析XML的Handler */
  70.       AlbumHandler alHandler = new AlbumHandler(); 
  71.       Xml.parse(url.openConnection().getInputStream(),
  72.                 Xml.Encoding.UTF_8,alHandler);
  73.       
  74.       /* 取得相簿信息 */
  75.       data =alHandler.getParsedData(); 
  76.     }
  77.     catch (Exception e)
  78.     { 
  79.       /* 发生错误时返回result回上一个activity */
  80.       Intent intent=new Intent();
  81.       Bundle bundle = new Bundle();
  82.       bundle.putString("error",""+e);
  83.       intent.putExtras(bundle);
  84.       /* 错误的返回值设置为99 */
  85.       EX09_08_1.this.setResult(99, intent);
  86.       EX09_08_1.this.finish();
  87.     }
  88.     return data;
  89.   }
  90.   
  91.   /* 覆盖 onActivityResult()*/
  92.   @Override
  93.   protected void onActivityResult(int requestCode,int resultCode,
  94.                                   Intent data)
  95.   {
  96.     switch (resultCode)
  97.     { 
  98.       case 99:
  99.         /* 返回错误时以Dialog显示 */
  100.         Bundle bunde = data.getExtras();
  101.         String error = bunde.getString("error");
  102.         showDialog(error);
  103.         break;     
  104.       default: 
  105.         break; 
  106.     } 
  107.   } 
  108.   
  109.   /* 显示Dialog的method */
  110.   private void showDialog(String mess){
  111.     new AlertDialog.Builder(EX09_08_1.this).setTitle("Message")
  112.      .setMessage(mess)
  113.      .setNegativeButton("确定",new DialogInterface.OnClickListener()
  114.       {
  115.         public void onClick(DialogInterface dialog, int which)
  116.         {
  117.         }
  118.       })
  119.       .show();
  120.   }
  121. }