android新闻客户端实验报告,Android 新闻客户端学习笔记
学习了新闻客户端开发后,有很多是通用的,就把客户端用到的一些做个笔记,已备以后使用,主要用到的知识点有:
1. Android网络编程
2. Android中BaseAdapter的使用
3. Android中Webview的使用
网络编程工具类:
public class HttpUtils {
public static void getNewsJSON(final String url,final Handler handler){
new Thread(new Runnable() {
@Override
public void run() {
HttpURLConnection conn;
InputStream is;
try {
conn = (HttpURLConnection) new URL(url).openConnection();
conn.setRequestMethod("GET");
is = conn.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
String line="";
StringBuilder result = new StringBuilder();
while ((line = reader.readLine()) != null){
result.append(line);
}
Message msg = new Message();
msg.obj = result.toString();
handler.sendMessage(msg);
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}
public static void setBitmap(final ImageView ivPic,final String pic_url){
new Thread(new Runnable() {
@Override
public void run() {
try {
HttpURLConnection conn = (HttpURLConnection) new URL(pic_url).openConnection();
conn.connect();
InputStream is = conn.getInputStream();
Bitmap bitmap = BitmapFactory.decodeStream(is);
ivPic.setImageBitmap(bitmap);
is.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}).start();
}
BaseAdapter 适配器:
public class NewsAdapter extends BaseAdapter {
private Context context;
private List newsList;
public NewsAdapter(Context context,List newsList) {
super();
this.context = context;
this.newsList = newsList;
}
@Override
public int getCount() {
return newsList.size();
}
@Override
public News getItem(int arg0) {
return newsList.get(arg0);
}
@Override
public long getItemId(int arg0) {
return arg0;
}
@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
if(arg1 == null){
arg1 = LayoutInflater.from(context).inflate(R.layout.news_item, null);
TextView tvTitle = (TextView) arg1.findViewById(R.id.tvTitle);
TextView tvDesc = (TextView) arg1.findViewById(R.id.tvdesc);
TextView tvTime = (TextView) arg1.findViewById(R.id.tvTime);
ImageView ivPic = (ImageView) arg1.findViewById(R.id.ivPic);
News news = newsList.get(arg0);
tvTitle.setText(news.getTitle());
tvDesc.setText(news.getDesc());
tvTime.setText(news.getTime());
String pic_url = news.getPic_url();
HttpUtils.setBitmap(ivPic, pic_url);
}
return arg1;
}
}
MainActivity界面:
public class MainActivity extends Activity implements OnItemClickListener{
private ListView lvNews;
private NewsAdapter adapter;
private List newsList;
public static final String GET_NEWS_URL="";
private Handler getNewsHandler = new Handler(){
public void handleMessage(android.os.Message msg) {
String jsonData= (String) msg.obj;
System.out.println(jsonData);
try {
JSONArray jsonArray = new JSONArray(jsonData);
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject object = jsonArray.getJSONObject(i);
String title = object.getString("title");
String desc = object.getString("desc");
String time = object.getString("time");
String content_url = object.getString("content_url");
String pic_url = object.getString("pic_url");
newsList.add(new News(title, desc, time, content_url, pic_url));
adapter.notifyDataSetChanged();
}
} catch (Exception e) {
e.printStackTrace();
}
};
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lvNews = (ListView) findViewById(R.id.lv_News);
newsList = new ArrayList();
adapter = new NewsAdapter(this,newsList);
lvNews.setOnItemClickListener(this); //设置监听
lvNews.setAdapter(adapter);//设置适配器
HttpUtils.getNewsJSON(GET_NEWS_URL, getNewsHandler);
}
@Override
public void onItemClick(AdapterView> arg0, View arg1, int position, long arg3) {
News news = newsList.get(position);
Intent intent = new Intent(this, BrowsNewsActivity.class);
intent.putExtra("content_url", news.getContent_url());
startActivity(intent);
}
}
BrowsNewsActivity界面:
public class BrowsNewsActivity extends Activity { private WebView webView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_brows_news); webView = (WebView) findViewById(R.id.webView); String content_url = getIntent().getStringExtra("content_url"); webView.loadUrl(content_url); webView.getSettings().setJavaScriptEnabled(true); webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); } }
android新闻客户端实验报告,Android 新闻客户端学习笔记相关推荐
- android消息响应实验报告,android实验一实验报告-20210401011015.docx-原创力文档
Last revision on 21 December 2020 Last revision on 21 December 2020 Android实验一实验报告 Android实验报告一 姓名:丁 ...
- android对象识别实验报告,Android 3相册实验报告.doc
Android 3相册实验报告 中原工学院计算机学院 软件平台开发技术大作业 班 级: 软件121 作品名称: 3D相册 姓 名: 辛俊闪 学 号: 201200834101 指导教师: 刘凤华 20 ...
- android博学谷实验报告,Android项目实战系列—基于博学谷(四)我的模块(上)...
image 由于这个模块内容较多,篇幅较长,请耐心阅读. "我"的模块分为四个部分 一."我"的界面 1.底部导航栏 (1).导入界面图片 将底部导航栏所需图片 ...
- Android录音器实验报告,Android实现录音(MediaRecorder)
Android提供了两个API用于录音的实现:MediaRecorder 和 AudioRecord,各有优劣. 1.MediaRecorder 已经集成了录音.编码.压缩等,支持少量的录音音频格式, ...
- Android五子棋开发实验报告,Android五子棋游戏实验报告.doc
Android开发总结报告 _____扫雷小游戏 2011年1月 一.背景 扫雷是一个简单的单人游戏.游戏的目的是在没有触碰任何一个地雷的情形下清空一个雷区.扫雷不仅有Windows版本,也有其他平台 ...
- 20175333曹雅坤实验四《Android程序设计》实验报告
20175333实验四<Android程序设计>实验报告 一.实验内容及步骤 - Android程序设计-1 Android Stuidio的安装测试: 参考<Java和Androi ...
- 20155318 《Java程序设计》实验四 (Android程序设计)实验报告
20155318 <Java程序设计>实验四 (Android程序设计)实验报告 实验内容 基于Android Studio开发简单的Android应用并部署测试; 了解Android.组 ...
- 北理计算机网络实验报告,北京理工大学计算机网络实践ftp客户端实验报告.doc...
北京理工大学计算机网络实践ftp客户端实验报告.doc 实验五FTP客户端程序 实验目的 文件传送协议FTP是Internet中广泛使用的服务协议之一,FTP协议是客 户/服务器之间进行文件传递的协议 ...
- php新闻实验总结,新闻系统实验报告.doc
新闻系统实验报告 基于B/S结构的程序设计 ---新闻发布系统 1.实验目的: 通过开发一个简单的B/S系统,掌握基于web的程序设计的基本流程和方法,熟悉一些开发工具的使用. 2.实验要求: 开发一 ...
最新文章
- Highmaps网页图表教程之下载Highmaps与Highmaps的地图类型
- 新版PyTorch发布!新增TorchScript API,扩展ONNX导出……4大功能更新值得关注
- C++ Primer 5th笔记(chap 17 标准库特殊设施)输出补白
- 找不到redis得pid文件_电脑提示Windows找不到文件?试试这两个技巧,轻松解决!...
- Ubantu键盘快捷键
- 前端学习(3226):回调形式的ref
- 干货!操作系统基础知识汇总!转给要面试的同学吧
- mybatis 报错: Invalid bound statement (not found)
- 从头开始-02.C语言基础
- 数据结构考研:线性表,顺序表,有序表,链表,数组的概念的区别与联系(软件工程/计算机/王道论坛)
- 正则表达式,js表单验证
- .json格式转为.yml格式
- 记录小米8连接电脑之后的文件位置
- 影响力在职场的重要性
- Oracle公有云的Modifiable VCN功能
- 物联网跟人的神经网络相似通过各种信息传感设备
- Python 实现文件关键字扫描
- 通过kiwix浏览wikipedia
- ASP.NET搭建企业微信公众平台源码
- [转]通过 BT 种子 Hash 值从 BitComet 服务器上下载种子文件