返回
顶部

修改密码

首页 > 教程 > 网络通信 > HTTP > 正文
Android获取网络数据并且用listView展示

+1

-1

收藏

+1

-1

点赞0

评论0

以下是采用url方式获取网络数据并且用listView展示。 package com.theme; import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.net.URL;import java.net.URLConnection;import java.util.ArrayList;import java.util.L…

以下是采用url方式获取网络数据并且用listView展示。

 
package com.theme;
 
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.List;
import com.theme.download.DownActivity;
import android.app.ListActivity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.RatingBar;
import android.widget.TextView;
 
public class MainActivity extends ListActivity {
    private ApkListAdapter apkListAdapter;
 
    public class ApkListAdapter extends BaseAdapter {
        private Context context;
        private LayoutInflater layoutInflater;
        private String inflater = Context.LAYOUT_INFLATER_SERVICE;
        public String rootUrl = "http://192.168.0.103:8080/upload/";
        private String listUrl = rootUrl + "list.txt";
        public List imageDataList = new ArrayList();
 
        class ImageData {
            public String url;
            public String applicationName;
            public float rating;
        }
 
        private InputStream getNetInputStream(String urlStr) {
            try {
                URL url = new URL(urlStr);
                URLConnection cONn = url.openConnection();
                conn.connect();
                InputStream is = conn.getInputStream();
                return is;
            } catch (Exception e) {
 
            }
            return null;
        }
 
        public ApkListAdapter(Context context) {
            this.cONtext = context;
            layoutInflater = (LayoutInflater) context
                    .getSystemService(inflater);
            try {
                InputStream is = getNetInputStream(listUrl);
                InputStreamReader isr = new InputStreamReader(is, "GBK");
                BufferedReader br = new BufferedReader(isr);
                String s = null;
                while ((s = br.readLine()) != null) {
                    String[] data = s.split(",");
                    if (data.length > 2) {
                        ImageData imageData = new ImageData();
                        imageData.url = data[0];
                        imageData.applicatiONName = data[1];
                        imageData.rating = Float.parseFloat(data[2]);
                        imageDataList.add(imageData);
                    }
                }
                is.close();
            } catch (Exception e) {
                Log.i("System.out", e.toString());
            }
        }
 
        @Override
        public int getCount() {
            return imageDataList.size();
        }
 
        @Override
        public Object getItem(int position) {
            return position;
        }
 
        @Override
        public long getItemId(int position) {
            return position;
        }
 
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            LinearLayout linearLayout = (LinearLayout) layoutInflater.inflate(
                    R.layout.main, null);
            ImageView ivLogo = (ImageView) linearLayout
                    .findViewById(R.id.ivLogo);
 
            TextView tvApplicatiONName = ((TextView) linearLayout
                    .findViewById(R.id.tvApplicationName));
 
            TextView tvRating = (TextView) linearLayout
                    .findViewById(R.id.tvRating);
            RatingBar ratingBar = (RatingBar) linearLayout
                    .findViewById(R.id.ratingbar);
 
            tvApplicationName
                    .setText(imageDataList.get(position).applicationName);
            tvRating.setText(String.valueOf(imageDataList.get(position).rating));
            ratingBar.setRating(imageDataList.get(position).rating);
 
            try {
                InputStream is = getNetInputStream(rootUrl
                        + imageDataList.get(position).url);
                Bitmap bitmap = BitmapFactory.decodeStream(is);
                is.close();
                ivLogo.setImageBitmap(bitmap);
            } catch (Exception e) {
                Log.i("System.out", e.toString());
            }
            return linearLayout;
        }
    }
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        apkListAdapter = new ApkListAdapter(this);
        setListAdapter(apkListAdapter);
 
    }
}

扫一扫在手机打开

评论
已有0条评论
0/150
提交
热门评论
相关推荐
今日要闻
换一批
热点排行