本文实例为大家分享了Android新闻浏览客户端,基于php后台,供大家参考,具体内容如下
1、使用HBuilder进行PHP环境配置,测试是否可以查询MySQL语句,之前都已经详细说明过了。
2、此处php后台实现mysql的查询功能,并以JSON数据格式返回个客户端
在PHP此处建立一个mysql_connect.php文件,实现数据库的连接,并设置字符集格式。
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<?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这个方法即可。
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
<?php
/*获得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 );
?>
|
重点在于Android端的设计开发
1、设计界面
由于需要以在ListView的每个Item中设置相同的格式,所以此处运用ListView+Adapter的形式
在主界面LinearLayout中添加一个ListView控件
2、Mainactivity程序如下:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
public class MainActivity extends Activity implements OnItemClickListener{
private ListView lvNews ;
private NewsAdapter adapter ;
//定义集合
private List<News> newsList ;
//获取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 id=\"codetool\">
|