留言栏

xiaoxiao2021-02-28  34

参考链接: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>() { @Override public void onResponse(String s) { }}, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError volleyError) { Log.d("2222","错误"); } }){ @Override protected 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);
转载请注明原文地址: https://www.6miu.com/read-600358.html

最新回复(0)