点击Button按钮,解析在ListView上

原创 2017年10月13日 08:46:38

一,

public String urlString = "http://api.expoon.com/AppNews/getNewsList/type/1/p/1";
String urlBitmap = "http://img.my.csdn.net/uploads/201407/26/1406383265_8550.jpg";  //网址
//线程  Handler 
private Handler handler = new Handler(){      
    public void handleMessage(Message msg) {
        super.handleMessage(msg);
        if (msg.what ==1){
            lv.setAdapter(new MAdapter());
        }else if (msg.what ==2){
            Bitmap bitmp = (Bitmap) msg.obj;
            im.setImageBitmap(bitmp);
        }
    }
};
二,
public void getNetData(View view) {
    new Thread() {
        @Override
        public void run() {
            super.run();
            //接收的是字符串;是json;
            String netjson = NetWordUtils.getNetjson(urlString);
            Gson gson = new Gson();
            News news = gson.fromJson(netjson, News.class);
            dataBeanList = news.getData();
            //需要发送handler,来设置adapter
            Message message = new Message();
            message.what = 1;
            handler.sendMessage(message);
        }
    }.start();
}
//这时少个NetWordUtils类,还少个Gson包,还少个News解析包
//在重新建个类,名叫NetWordUtils,写下面的代码,News类直接解析
private static String  tag = "NetWordUtils";
/**
 * 获取网络json
 *
 * @param urlString
 * @return
 */
public static String getNetjson(String urlString) {
    try {
        URL url = new URL(urlString);
        HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
        urlConnection.setRequestMethod("GET");//若果是get请求可以不用配置; 其他请求必须配置
        urlConnection.setConnectTimeout(8000);//设置链接超时间
        InputStream inputStream = urlConnection.getInputStream();//获取网络返回的输入流;
        //可拼接的字符串
        StringBuilder stringBuilder = new StringBuilder();
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
        String temp = "";
        while ((temp = bufferedReader.readLine()) != null) {
            stringBuilder.append(temp);
            temp = "";
        }
        //这个是网络获取的数据
        String data = stringBuilder.toString();
        Log.e(tag, "getData: " + data);
        return data;
    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return "";
}
/**
 * 获取网络图片的工具类
 *
 * @param urlString
 * @return
 */
public static Bitmap getNetBitmap(String urlString) {
    try {
        //用URL封装链接地址;
        URL url = new URL(urlString);
        //用url打开链接
        HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
        //联网的状态码
        int responseCode = urlConnection.getResponseCode();
        if(responseCode ==200){
            //链接上获取输入流
            InputStream inputStream = urlConnection.getInputStream();
            //把流直接转换成bitmap(系统提供的BitmapFactory)
            Bitmap bitmap = BitmapFactory.decodeStream(inputStream);//BitmapFactory是个工具类,系统提供的
            return bitmap;
        }else {
            Log.e(tag, "网络状态码:: "+responseCode );
        }
    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return null;
}
三,
public void getNetBitmap(View view){
    new Thread(
            new Runnable() {
                @Override
                public void run() {
                    //得到服务器返回的bitmap
                    Bitmap netBitmap = NetWordUtils.getNetBitmap(urlBitmap);
                    Message message = handler.obtainMessage();
                    message.what = 2;
                    message.obj = bitmap;
                    handler.sendMessage(message);
                }
            }
    ).start();
}
四,
class MAdapter extends BaseAdapter {


    @Override
    public int getCount() {
        return dataBeanList.size();
    }

    @Override
    public Object getItem(int i) {
        return dataBeanList.get(i);
    }

    @Override
    public long getItemId(int i) {
        return i;
    }

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        view = View.inflate(MainActivity.this, R.layout.item, null);
        TextView tv_name = (TextView)view.findViewById(R.id.tv_name);
        tv_name.setText(dataBeanList.get(i).getNews_summary());
        return view;
    }
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

点击button按钮动态加载listView

在android中listView这个控件比较常用, 比如像新浪微博的置顶加载,手机QQ空间的底端加载listView。这些demo都比较多,随便“度娘”下,一大堆。  这些写的是个比较简单的点击bu...

安卓ListView的Item中添加按钮后,点击Button获取点击行的TextView文本数据

最近这两天,公司项目改需求,要求对ListView的Item中的时间数据进行重传。并且明确要求需要用按钮功能实现,其实我觉得这是多此一举。完全可以通过OnItemClick点击事件来实现,还非得搞个按...

Button实现按钮点击效果demo

  • 2016-02-16 17:34
  • 1011KB
  • 下载

Button 按钮的点击时候出现蓝色边框

css控制Button 按钮的点击时候出现蓝色边框 – 北漂小兄弟 http://www.inbeijing.org/archives/1139 Button 按钮的点击时候出现蓝色边框的问题 ...

Android Button点击效果(按钮背景变色、文字变色)

Android Button的使用过程中,我们会需要为Button添加点击效果,不仅仅按钮的背景色需要变化,而且有时,我们连文字的颜色都希望变化,我们可以使用StateListDrawable资源可以...

提问:为什么Tkinter的被焦点的Button按钮,鼠标点击和空格键有一样的效果

引用一段Button例子的代码, 源自:http://blog.csdn.net/jcodeer/article/details/1811298 作者:jcodeer  博客:Tkinter教...

Android Button按钮点击两次之后,才执行点击事件的操作。

在我的项目里有个页面同时存在 一个EditText和一个Button。如图。 由于每次进入这个页面都弹出软键盘,所以我在这个提交订单页面的AndroidManifest.xml中声明...
  • ndscuw
  • ndscuw
  • 2016-07-02 15:17
  • 3453

封装顶部选择按钮(用block实现在当前控制器下面添加button点击方法)

****************************************************************************** baseView.h #import ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)