国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

基于PHP后臺(tái)的Android新聞瀏覽客戶端

2020-03-22 19:18:46
字體:
供稿:網(wǎng)友
本文實(shí)例為大家分享了Android新聞瀏覽客戶端,基于php后臺(tái),供大家參考,具體內(nèi)容如下1、使用HBuilder進(jìn)行PHP環(huán)境配置,測(cè)試是否可以查詢html' target='_blank'>MySQL語句,之前都已經(jīng)詳細(xì)說明過了。2、此處php后臺(tái)實(shí)現(xiàn)mysql的查詢功能,并以JSON數(shù)據(jù)格式返回個(gè)客戶端在PHP此處建立一個(gè)mysql_connect.php文件,實(shí)現(xiàn)數(shù)據(jù)庫的連接,并設(shè)置字符集格式。$con = mysql_connect("localhost","root","123456");//設(shè)置字符集為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);
然后新建一個(gè)getNewsJSON.php文件用于進(jìn)行將查詢結(jié)果轉(zhuǎn)換成JSON字符串格式。只需要 json_encode這個(gè)方法即可。/*獲得JSON數(shù)據(jù) * 返回值: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']//數(shù)組轉(zhuǎn)化為JSON字符串echo json_encode($arr);
1、設(shè)計(jì)界面由于需要以在ListView的每個(gè)Item中設(shè)置相同的格式,所以此處運(yùn)用ListView+Adapter的形式在主界面LinearLayout中添加一個(gè)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一個(gè)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) ;此處需要一個(gè)工具類HttpUtils以及自定義的NewsAdapter以實(shí)現(xiàn)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中需要顯示單個(gè)圖片,所以用到Bitmap這個(gè)類。由于用到網(wǎng)絡(luò)傳輸,所以需要用到線程這個(gè)概念!!關(guān)鍵理解handler message以及l(fā)oop這三者的關(guān)系。以上就是本文的全部?jī)?nèi)容,希望對(duì)大家學(xué)習(xí)Android軟件編程有所幫助。PHP教程

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 凤山市| 双柏县| 平江县| 临漳县| 庄浪县| 永川市| 新余市| 财经| 福清市| 温州市| 天等县| 桐乡市| 崇礼县| 宿迁市| 罗定市| 盐边县| 潜江市| 保靖县| 扶绥县| 无锡市| 温泉县| 沙田区| 纳雍县| 宝应县| 南皮县| 浦江县| 西宁市| 政和县| 嘉禾县| 高雄市| 汽车| 故城县| 静乐县| 安丘市| 利川市| 图们市| 昌图县| 汝阳县| 滨海县| 钦州市| 松滋市|