留言栏
来源:互联网 发布:java界面编程实例 编辑:程序博客网 时间:2024/05/21 07:59
参考链接:4个小时做一个留言栏
基本功能:
- 刷新获取网络数据,并用listview显示出来
- 点击按钮跳转到发送页面
- 在发送页面编辑文本上传
- 上传之后的数据,在获取列表中显示
基本步骤:
- 在下拉刷新区内,创建请求队列
- 创建字符请求对象
把请求对象加入到请求队列中
由于UI线程不安全,所以不能直接在responselistener中向主界面传入数据,所以设置消息传送handler,用来从子线程向UI线程传送数据
handler用法:(子线程)
Message message=handler.obtainMessage();
message.what=1;
message.obj=response;
handler.sendMessage(message);
(主线程)`handler = new Handler(){
@Override
public void handleMessage(Message msg)- 获取数据
RequestQueue requestQueue= Volley.newRequestQueue(MainActivity.this); StringRequest stringRequest=new StringRequest("http://mclee.cn/getJson.php"//下载接口 ,new Response.Listener<String>() { public void onResponse(String response) { Log.d("111111","对对对"); Message message=handler.obtainMessage(); message.what=1; message.obj=response; handler.sendMessage(message); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError volleyError) { handler.sendEmptyMessage(0); Log.d("222222","错错错"); } }); requestQueue.add(stringRequest);
- 上传数据
StringRequest request=new StringRequest(Request.Method.POST, "http://mclee.cn/postJson.php"//上传接口 , new Response.Listener<String>() { @Overridepublic void onResponse(String s) { }}, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError volleyError) { Log.d("2222","错误"); } }){ @Overrideprotected Map<String, String> getParams() throws AuthFailureError { Map<String, String> map=new HashMap<String, String>(); map.put("json",editText.getText().toString()); return map;}
- 切换活动页面
Intent i=new Intent(); i.setClass(MainActivity.this,PostActivity.class); startActivity(i);
- 自定义listview
public class madapter extends BaseAdapter{//自定义的madapter,这里使用不规范,类名要大写MyAdapter public Context context=null; private List<String> list; public madapter(List<String> list,Context context){ this.list=list; this.context=context; } @Override public int getCount() {//获得listview的长度 return list.size(); } @Override public Object getItem(int i) { return list.get(i);//获取listview中每一条的内容 } @Override public long getItemId(int i) { return i;//获取每一项的id } @Override public View getView(int i, View view, ViewGroup viewGroup) {//用inflater绑定子布局cinvertview,返回子布局 View convertview= LayoutInflater.from(context).inflate(R.layout.listview_item, null); TextView textView= (TextView) convertview.findViewById(R.id.tv1); textView.setText(list.get(i));return convertview;}}
- listview在主布局的引用
madapter m=new madapter(list,MainActivity.this);
listView.setAdapter(m);
阅读全文
0 0
- 留言栏
- 留言栏
- 留言:
- 留言
- 留言
- 留言
- 留言
- 留言
- 留言
- 留言
- 留言
- 留言
- 留言
- Volley+ListView制作留言栏
- 做一个简易的留言栏
- 留言本
- 第一次留言!
- 最后留言。
- AS更新Gradle方法
- 即将逝去的Delphi前景在何方
- 电影推荐实例--基于协同过滤和DL特征提取的比较
- git基础学习
- 在mac上安装Python下的模块管理工具pip
- 留言栏
- Mac上的F键怎么快捷切换
- 分析Java AtomicInteger
- 如何给 eclipse 设置快捷键
- Fail-soft alpha-beta
- 记录下安装win7+centos双系统的经验,主要是转载
- 慕课网实战项目《WebAPP书城整站开发》笔记一:底部边栏样式实现
- c++ windows 使用 i配置文件
- Maven项目错误解决