首页 > 编程 > PHP > 正文

基于PHP后台的Android新闻浏览客户端

2020-03-22 19:18:46
字体:
来源:转载
供稿:网友
本文实例为大家分享了Android新闻浏览客户端,基于php后台,供大家参考,具体内容如下1、使用HBuilder进行PHP环境配置,测试是否可以查询html' target='_blank'>MySQL语句,之前都已经详细说明过了。2、此处php后台实现mysql的查询功能,并以JSON数据格式返回个客户端在PHP此处建立一个mysql_connect.php文件,实现数据库的连接,并设置字符集格式。$con = mysql_connect("localhost","root","123456");//设置字符集为UTF-8 可解决中文乱码mysql_query("SET NAMES 'utf8'");mysql_query("SET CHARACTER SET utf8");mysql_query("SET CHARACTER_SET_RESULT=utf8");if(!$con){die(mysql_error());mysql_select_db("newsdemo",$con);
然后新建一个getNewsJSON.php文件用于进行将查询结果转换成JSON字符串格式。只需要 json_encode这个方法即可。/*获得JSON数据 * 返回值:title desc time content_url pic_url*/ require 'mysql_connect.php';$n = 0;$result = mysql_query("select * from news");while($row = mysql_fetch_array($result)){$arr[$n++] = array("title"= $row['title'],"desc"= $row['desc'],"time"= $row['time'],"content_url"= $row['content_url'],"pic_url"= $row['pic_url']//数组转化为JSON字符串echo json_encode($arr);
1、设计界面由于需要以在ListView的每个Item中设置相同的格式,所以此处运用ListView+Adapter的形式在主界面LinearLayout中添加一个ListView控件2、Mainactivity程序如下:public class MainActivity extends Activity implements OnItemClickListener{
//获取json字符串的URL地址 public static final String GET_NEWS_URL = "http://211.87.234.20/NewsDemo/getNewsJSON.php"; //获取msg之后如何处理 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") ;System.out.println("title="+title) ;//add一个News类型的ObjectnewsList.add(new News(title,desc,time,content_url,pic_url)) ;//通知更新adapter.notifyDataSetChanged() ;} catch (JSONException e) {// TODO Auto-generated catch blocke.printStackTrace(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState) ; setContentView(R.layout.activity_main) ; lvNews = (ListView) findViewById(R.id.lvNews) ; //初始化 newsList = new ArrayList News adapter = new NewsAdapter(this,newsList) ; lvNews.setAdapter(adapter) ; lvNews.setOnItemClickListener(this) ; HttpUtils.getNewsJSON(GET_NEWS_URL,getNewsHandler) ; @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true;@Overridepublic void onItemClick(AdapterView arg0, View arg1, int position, long arg3) {// TODO Auto-generated method stubNews news = newsList.get(position) ;Intent intent = new Intent(this,BrowseNewsActivity.class) ;intent.putExtra("content_url",news.getContent_url()) ;startActivity(intent) ;此处需要一个工具类HttpUtils以及自定义的NewsAdapter以实现item的视图显示.HttpUtils代码如下:package com.MR.news.utils;
xml version="1.0" encoding="utf-8" RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" ImageView android:id="@+id/ivPic" android:layout_width="42dp" android:layout_height="42dp" android:src="@drawable/ic_launcher" TextView android:id="@+id/tvTitle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_toRightOf="@+id/ivPic" android:text="title" android:textSize="18sp" / TextView android:id="@+id/tvDesc" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/tvTitle" android:layout_below="@+id/tvTitle" android:text="desc" android:textSize="18sp" / TextView android:id="@+id/tvTime" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:text="time" android:textSize="10sp" /RelativeLayout 注意:此item中需要显示单个图片,所以用到Bitmap这个类。由于用到网络传输,所以需要用到线程这个概念!!关键理解handler message以及loop这三者的关系。以上就是本文的全部内容,希望对大家学习Android软件编程有所帮助。PHP教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表