android 增删改查错误,安卓中使用HttpURLConnection进行增删改查操作(包括后端讲解)(一)...
在安卓中我们使用HttpURLConnection来进行请求
我们看主activity的代码:public class TestHttpActivity extends Activity implements AdapterView.OnItemClickListener {
public static final String TAG = TestHttpActivity.class.getSimpleName();
private ArrayList mBookArrayList;
private BookMainAdapter mBookMainAdapter;
public static void startActivity(Context context) {
Intent intent = new Intent();
intent.setClass(context,TestHttpActivity.class);
context.startActivity(intent);
}
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.feeds_main);
initTitle();
ListView listView = (ListView) findViewById(R.id.news_home_listview);
mBookMainAdapter = new BookMainAdapter(this);
listView.setAdapter(mBookMainAdapter);
listView.setOnItemClickListener(this);
}
@Override
protected void onResume() {
super.onResume();
new InitDataAsyncTask().execute();
}
private void initTitle() {
TitleBarCommon titleBarCommon = (TitleBarCommon)findViewById(R.id.head_common_layout);
titleBarCommon.setRightTextViewString("增加");
titleBarCommon.setRightTextViewListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
BookDetail.startActivity(TestHttpActivity.this,null);
}
});
}
private class InitDataAsyncTask extends AsyncTask {
@Override
protected Void doInBackground(Void... params) {
HttpUtil httpUtil = new HttpUtil();
String url = "http://139.199.89.89/api/v1/books";
String response = httpUtil.get(TestHttpActivity.this,url);
Log.d(TAG,"response="+response);
parseResponse(response);
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
Log.d(TAG,"<<<<
mBookMainAdapter.setList(mBookArrayList);
}
}
private void parseResponse(String response) {
try{
Gson gson = new Gson();
JSONArray jsonArray = new JSONArray(response);
ArrayList books;
mBookArrayList = new Gson().fromJson(response, new TypeToken>(){}.getType());
}catch (Exception ex) {
ex.printStackTrace();
}
}
@Override
public void onItemClick(AdapterView> parent, View view, int position, long id) {
Book book = mBookArrayList.get(position);
BookDetail.startActivity(TestHttpActivity.this,book);
}
}
注意所有的网络请求都要放到子线程中,不然会报错
xml:<?xml version="1.0" encoding="utf-8"?>
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/white_a"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical">
android:id="@+id/head_common_layout"
android:layout_width="match_parent"
android:layout_height="44dp"
android:background="@color/red_bn"
android:gravity="center_vertical"/>
android:id="@+id/news_home_listview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="@null"
android:fadingEdge="none"
android:footerDividersEnabled="true"
android:listSelector="@color/trans_color"
android:scrollbars="none"
android:scrollingCache="false" />
看Get操作:public String get(Context context, final String strUrl) {
URL getUrl = null;
try {
getUrl = new URL(strUrl);
} catch (MalformedURLException ex) {
Log.e("HttpUtil", "get MalformedURL", ex);
return null;
}
InputStream input = null;
ByteArrayOutputStream byteOutStream = null;
HttpURLConnection conn = null;
byte[] outData = null;
try {
conn = getConnection(context, getUrl);
connection = conn;
conn.setConnectTimeout(TIMEOUT);
conn.setReadTimeout(TIMEOUT);
conn.setDoInput(true);
conn.connect();
input = conn.getInputStream();
String webcontent = null;
byteOutStream = new ByteArrayOutputStream();
//byte[] buf = new byte[BUF_LEN];
int i = 0;
while((i = input.read(tmpBuf)) != -1){
byteOutStream.write(tmpBuf, 0, i);
}
outData = byteOutStream.toByteArray();
if(outData != null && outData.length > 0){
webcontent = new String(outData);
}
return webcontent;
} catch (Exception ex) {
Log.e("HttpUtil", "get", ex);
//return ex.getMessage();
} finally {
try{
outData = null;
if(input != null){
input.close();
input = null;
}
if(byteOutStream != null){
byteOutStream.close();
byteOutStream = null;
}
if(conn != null){
conn.disconnect();
conn = null;
}
} catch(Exception ex){
Log.e("HttpUtil", "get finally", ex);
//return ex.getMessage();
}
}
return null;
}
android 增删改查错误,安卓中使用HttpURLConnection进行增删改查操作(包括后端讲解)(一)...相关推荐
- android的适配器作用,适配器模式安卓中的应用
安卓里面经常用到的控件Recycleview和ListView我们经常会写adapter,很直观,就是适配器的意思,关于适配器简单的例子很多,这里晚上找到的随便给一个,例子来源于这篇文章 160117 ...
- android商店账号密码错误,安卓:我失去了我的安卓密钥商店,我该怎么办?
大家都说过,你绝对需要钥匙.没有办法解决这个问题.然而,您可能会惊讶于数据恢复软件可以有多好,以及关键可能在您的系统上停留多长时间-毕竟,它是一个很小的文件,而且可能还没有被覆盖.在这两方面,我都感到 ...
- 易生活评论功能android,易生活(二)-APP—安卓中评论功能的实现
如何实现点击"评论"之后跳出拼音输入法,代码如下: /** * 显示或隐藏输入法 */ private void onFocusChange(boolean hasFocus) { ...
- 【Android游戏开发之八】游戏中添加音频-详解MediaPlayer与SoundPoo!并讲解两者的区别和游戏中的用途!...
为什么80%的码农都做不了架构师?>>> 李华明Himi 原创,转载务必在明显处注明: 转载自 [黑米GameDev街区] 原文链接: http://www.himigam ...
- 【安卓中的缓存策略系列】安卓缓存策略之综合应用ImageLoader实现照片墙的效果
在前面的[安卓缓存策略系列]安卓缓存之内存缓存LruCache和[安卓缓存策略系列]安卓缓存策略之磁盘缓存DiskLruCache这两篇博客中已经将安卓中的缓存策略的理论知识进行过详细讲解,还没看过这 ...
- 动态网站作业4-JSP中实现数据库的增删改查的操作
动态网站作业4-JSP中实现数据库的增删改查的操作 用Statement向数据库中添加元素 1.创建JavaBean–UserBean package com.media.bean;public cl ...
- java list集合增删改_Java中集合类list的增删改查
今天给大家带来的是Java中list类的使用,java.util 包提供了list类来对线性数据操作 List接口是Collection接口的子接口,List有一个重要的实现类--ArrayList类 ...
- 如何 增删改查 XML文件中的元素
如何 增删改查 XML文件中的元素 students.xml 文件如下: <?xml version="1.0" encoding="UTF-8" sta ...
- java对数据库的增删改查_在java中对数据库进行增删改查
代码区域: package com.oracle.jdbc.demo1; import java.sql.Connection; import java.sql.DriverManager; impo ...
最新文章
- SVG 基本知识:SVG 放大缩小之 viewbox 初探 (1)
- Everything排除某个目录、隐藏文件、系统文件
- 代码管理平台之svn
- Arthas 使用的各类方式
- 美国空军开发新型机载网络技术
- 牛市该理智还是疯狂?python+BI可视化的股票分析,都是你想看的
- Cisco路由器上传和下载IOS
- python绘制密度图
- vue3快速上手(尚硅谷视频笔记)
- uc手机浏览器 手机模拟_在PC上测试移动端网站和模拟手机浏览器的5大方法
- 使用特征传播重构缺失数据进行图机器学习
- android连接wifi不能上网,手机wifi连接上但不能上网怎么办
- 农业区块链 - 区块链在农林渔食品业的落地场景及案例汇编
- simpson积分公式
- 数字化转型 — 新能源汽车 — 生产制造流程 — 总装车间
- 计算机考研各科目分值分布,2019考研各科目试卷分值分布及结构分析
- OpencCV制作相框效果
- 天平应什么放置_天平的使用规程
- c语言冗余数据什么意思,冗余是什么意思_冗余解释和意思
- mongoose http服务器对TCP流的接收处理
热门文章
- ORACLE 中ROWNUM用法总结(转载)
- 《SilverLight2快速入门》之基本控件DataGrid
- ADO.NET Entity Framework支持多Provider
- Linux 命令(15)—— umask 命令(builtin)
- 前端处理方式:特殊格式时间转换(2020-11-27T02:58:41.000000Z)
- 《Linux 性能及调优指南》1.4 硬盘I/O子系统
- Codeforces Round #879 (Div. 2) C. Short Program
- 告别复杂WCF扩展 REST过程 ,让他 so easy
- 10 个步骤让你成为高效的 Web 开发者
- debugfs查看文件块号,dd命令读指定块号的内容