亚洲免费不卡_在线视频精品_国产尤物精品_久久久久网址_久久精品91_欧美va天堂在线_狠狠入ady亚洲精品_亚洲午夜精品福利_国产精品草草_午夜精品久久99蜜桃的功能介绍

基于PHP后臺的Android新聞瀏覽客戶端
來源:易賢網 閱讀:1447 次 日期:2016-08-19 14:43:41
溫馨提示:易賢網小編為您整理了“基于PHP后臺的Android新聞瀏覽客戶端”,方便廣大網友查閱!

本文實例為大家分享了Android新聞瀏覽客戶端,基于php后臺,供大家參考,具體內容如下

1、使用HBuilder進行PHP環境配置,測試是否可以查詢MySQL語句,之前都已經詳細說明過了。

2、此處php后臺實現mysql的查詢功能,并以JSON數據格式返回個客戶端

在PHP此處建立一個mysql_connect.php文件,實現數據庫的連接,并設置字符集格式。

<?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這個方法即可。

<?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程序如下:

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 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類型的Object

newsList.add(new News(title,desc,time,content_url,pic_url)) ;

}

//通知更新

adapter.notifyDataSetChanged() ;

} catch (JSONException e) {

// TODO Auto-generated catch block

e.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;

  }

@Override

public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {

// TODO Auto-generated method stub

News 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;

import java.io.BufferedReader;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.net.HttpURLConnection;

import java.net.URL;

import android.graphics.Bitmap;

import android.graphics.BitmapFactory;

import android.os.Handler;

import android.os.Message;

import android.widget.ImageView;

public class HttpUtils {

//工具類直接定義成靜態方法即可

/*url用于內部類中,所以要將其設定為final類型*/

/*讀取完成需要通知主線程,需要使用handler*/

public static void getNewsJSON(final String url,final Handler handler){

//訪問網絡,時間長,開啟新線程

new Thread(new Runnable(){

@Override

public void run() {

// TODO Auto-generated method stub

HttpURLConnection conn ;

InputStream is ;

try {

conn = (HttpURLConnection) new URL(url).openConnection() ;

//GET方式獲取

conn.setRequestMethod("GET") ;

//得到輸入流

is=conn.getInputStream() ;

//讀取數據用緩沖,里面要傳入一個reader

BufferedReader reader = new BufferedReader(new InputStreamReader(is));

//一行一行讀取數據

String line = "";

//沒讀完一行進行拼接,高效

StringBuilder result = new StringBuilder();

while((line = reader.readLine()) != null){

result.append(line);

}

Message msg = new Message() ;

//msg.obj可以放進去任何對象

msg.obj = result.toString() ;

handler.sendMessage(msg) ;

} catch (Exception e) {

e.printStackTrace();

}

}}).start() ;

}

public static void setPicBitMap(final ImageView ivPic,final String pic_url){

new Thread(new Runnable(){

@Override

public void run() {

// TODO Auto-generated method stub

try {

HttpURLConnection conn = (HttpURLConnection) new URL(pic_url).openConnection() ;

conn.connect() ;

InputStream is = conn.getInputStream() ;

//bitmap就是所需圖片資源

/*從資源文件中的到圖片*/

Bitmap bitmap = BitmapFactory.decodeStream(is) ;

ivPic.setImageBitmap(bitmap) ;

is.close() ;

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}).start() ;

}

}

NewsAdapter代碼如下:

package com.MR.news.adapter;

import java.util.List;

import com.MR.news.R;

import com.MR.news.model.News;

import com.MR.news.utils.HttpUtils;

import android.content.Context;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.BaseAdapter;

import android.widget.ImageView;

import android.widget.TextView;

public class NewsAdapter extends BaseAdapter {

//聲明上下文對象,后面的getView方法需要

private Context context;

private List<News> newsList;

public NewsAdapter(Context context, List<News> newsList){

this.context = context ;

this.newsList = newsList ;

}

@Override

public int getCount() {

// TODO Auto-generated method stub

return newsList.size();

}

@Override

public Object getItem(int position) {

// TODO Auto-generated method stub

return newsList.get(position);

}

@Override

public long getItemId(int position) {

// TODO Auto-generated method stub

return position;

}

@Override

public View getView(int position, View convertView, ViewGroup arg2) {

// TODO Auto-generated method stub

if(convertView == null){

convertView = LayoutInflater.from(context).inflate(R.layout.news_item,null) ;

}

TextView tvTitle = (TextView) convertView.findViewById(R.id.tvTitle) ;

TextView tvDesc = (TextView) convertView.findViewById(R.id.tvDesc) ;

TextView tvTime = (TextView) convertView.findViewById(R.id.tvTime) ;

ImageView ivPic = (ImageView) convertView.findViewById(R.id.ivPic);

News news = newsList.get(position) ;

tvTitle.setText(news.getTitle()) ;

tvDesc.setText(news.getDesc()) ;

tvTime.setText(news.getTime()) ;

String pic_url = news.getPic_url() ;

HttpUtils.setPicBitMap(ivPic, pic_url) ;

return convertView;

}

}

news_item用來設置每個item的顯示格式

<?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軟件編程有所幫助。

更多信息請查看網絡編程
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點

版權所有:易賢網

亚洲免费不卡_在线视频精品_国产尤物精品_久久久久网址_久久精品91_欧美va天堂在线_狠狠入ady亚洲精品_亚洲午夜精品福利_国产精品草草_午夜精品久久99蜜桃的功能介绍
很黄很黄激情成人| 午夜精品久久| 欧美不卡三区| 国内精品**久久毛片app| 亚洲国产欧美不卡在线观看| 一二三区精品| 欧美1区视频| 亚洲毛片视频| 欧美黄在线观看| 亚洲国产欧美不卡在线观看| 欧美中文日韩| 亚洲精品一区二区三区蜜桃久| 国产欧美日本在线| 欧美黄色精品| 一区二区三区高清视频在线观看| 久久久福利视频| 亚洲经典三级| 欧美日韩日本网| 性感少妇一区| 一本色道精品久久一区二区三区| 欧美在线高清| 国产精品久久久亚洲一区| 欧美日韩国产亚洲一区| 蜜乳av另类精品一区二区| 亚洲福利国产| 午夜精品视频在线观看一区二区| 99亚洲视频| 黄色欧美成人| 国产主播一区二区三区四区| 另类av一区二区| 国产精品日韩一区二区三区| 最新成人av网站| 好吊日精品视频| 欧美精品99| 久久国产欧美| 久久青草久久| 久久中文欧美| 欧美在线三级| 欧美1区视频| 欧美精品九九| 欧美日韩hd| 欧美日韩视频| 欧美日韩视频在线一区二区观看视频| 久久精品女人天堂| 欧美一区二区视频在线| 欧美福利一区| 国产精品大片免费观看| 欧美成人免费在线| 欧美日韩专区| 影音先锋亚洲一区| 一本色道久久综合亚洲精品不| 亚洲国产一区二区三区在线播| 影音先锋久久| 国产一区二区你懂的| 国产精品一区视频| 久久久久久精| 黄色免费成人| 国产日韩一区| 老司机精品视频网站| 欧美激情视频一区二区三区在线播放 | 亚洲一区日韩| 99在线|亚洲一区二区| 国产精品久久久久久久免费软件| 影音国产精品| 亚洲欧美日本视频在线观看| 久久综合影音| 激情久久一区| 国产精品一级| 久久久噜噜噜久久狠狠50岁| 欧美日韩亚洲一区| 中文精品视频| 欧美激情第8页| 亚洲精选在线| 欧美成人亚洲| 国产日韩精品一区观看 | 亚洲高清成人| 亚洲欧美日韩国产一区| 欧美激情91| 一区二区三区精品国产| 欧美一区二区三区四区在线观看地址 | 久久精品一区二区国产| 久久精品人人做人人爽电影蜜月| 欧美精品三区| 亚洲精品一级| 欧美福利网址| 国产精品日韩一区二区 | 亚洲国产三级| 欧美在线日韩精品| 国产亚洲欧美另类一区二区三区| 欧美日韩一区二区三区四区在线观看| 国产欧美日韩一区| 精品96久久久久久中文字幕无| 国产精品永久| 亚洲日本久久| 国产综合欧美在线看| 销魂美女一区二区三区视频在线| 亚洲高清免费| 亚洲网站在线| 欧美日本韩国在线| 亚洲一区二区精品在线| 一区二区在线不卡| 国产精品s色| 欧美另类视频| 欧美激情视频一区二区三区免费| 亚洲欧美久久| 国产农村妇女精品一区二区| 亚洲精品乱码久久久久久蜜桃麻豆| 欧美日韩高清在线一区| 欧美fxxxxxx另类| 久久久久国产一区二区| 欧美主播一区二区三区美女 久久精品人| 激情国产一区| 亚洲国产欧洲综合997久久| 欧美视频成人| 精品成人久久| 伊人成人在线视频| 在线看片日韩| 亚洲欧洲日本mm| 91久久精品国产91久久性色tv| 亚洲国产国产亚洲一二三| 激情久久久久| 日韩图片一区| 亚洲一区激情| 男女av一区三区二区色多| 欧美中文字幕| 欧美日韩爆操| 亚洲国产精品一区在线观看不卡 | 亚洲理论在线| 国产日韩久久| 久久久国产精品一区二区三区| 美日韩精品免费| 欧美日本免费| 99国产精品久久久久老师| 国产欧美不卡| 老司机精品福利视频| 欧美日一区二区三区在线观看国产免| 国户精品久久久久久久久久久不卡| 国产精品二区三区四区| 亚洲茄子视频| 久久国产精品久久久久久电车| 女同性一区二区三区人了人一| 国产精品vip| 一区二区精品国产| 欧美va天堂在线| 亚洲福利一区| 麻豆久久久9性大片| 韩日视频一区| 一区二区三区四区五区视频| 久久字幕精品一区| 亚洲毛片播放| 欧美日韩国产成人精品| 亚洲每日在线| 欧美日韩国产三区| 野花国产精品入口| 欧美日本一区| 美女精品网站| 99这里有精品| 国产精品第十页| 麻豆av一区二区三区久久| 亚洲小说欧美另类社区| 老鸭窝亚洲一区二区三区| 好吊视频一区二区三区四区| 免费在线欧美黄色| 日韩视频免费| 精品二区久久| 欧美人与禽猛交乱配视频| 国产乱人伦精品一区二区| 影音先锋中文字幕一区二区| 欧美成人一区二免费视频软件| 一级成人国产| 亚洲国产一区二区在线| 国产精品a级| 久久精品一区| 亚洲欧美日韩国产综合精品二区| 亚洲国产欧美不卡在线观看| 欧美视频一区| 午夜日韩视频| 欧美精品18| 欧美精品偷拍| 欧美日韩国产亚洲一区| 欧美在线观看天堂一区二区三区| 国产精品一区亚洲| 国产精品外国| 亚洲男女自偷自拍| 国产日韩三区| 国产精品伊人日日| 亚洲影院在线| 美日韩免费视频| 久久亚洲美女| 午夜精品久久| 亚洲午夜黄色| 最新国产拍偷乱拍精品| 亚洲二区免费| 亚洲裸体俱乐部裸体舞表演av| 亚洲国产欧美国产综合一区| 亚洲欧洲日韩综合二区| 日韩图片一区| 国产精品婷婷| 欧美一区二区三区四区在线观看地址| 久久一区二区三区四区五区 | 一本色道久久综合亚洲精品高清| 最新国产拍偷乱拍精品| 国产欧美日韩综合精品二区| 亚洲在线播放| 久久久青草婷婷精品综合日韩| 久久免费99精品久久久久久| 午夜精品视频| 激情视频一区二区三区| 一区二区av| 亚洲欧美日韩国产| 欧美va亚洲va日韩∨a综合色| 国产精品mm| 国产亚洲精品自拍| 欧美激情第8页| 亚洲国产欧美国产综合一区| 亚洲影院在线| 国产综合久久| 亚洲欧美日韩专区| 欧美特黄a级高清免费大片a级| 91久久极品少妇xxxxⅹ软件| 久久av最新网址| 欧美日韩另类综合| 在线亚洲成人| 午夜日韩福利| 99精品视频免费观看| 老牛嫩草一区二区三区日本| 91久久黄色| 欧美.www| 亚洲一区二区毛片| 韩国在线视频一区| 久久久久中文| 国产欧美日韩一区二区三区在线 | 一区二区三区成人精品| 久久综合九色综合欧美狠狠| 亚洲另类视频| 国产主播一区二区三区四区| 午夜影院日韩| 91久久亚洲| 午夜亚洲福利| 免费亚洲婷婷| 国产亚洲福利| 亚洲欧洲精品一区| 国内精品福利| 午夜日韩av| 久久婷婷人人澡人人喊人人爽| 一区二区精品在线| 狠狠干综合网| 欧美午夜一区| 欧美日本中文| 欧美日韩国产成人精品| 欧美福利一区| 欧美在线首页| 你懂的网址国产 欧美| 亚洲综合99| 亚洲一区二区三区四区五区午夜| 亚洲久久在线| 日韩午夜免费视频| 亚洲乱亚洲高清| 一区二区三区国产盗摄| 一区二区高清| 国产伦精品一区二区| 国产精品久久久亚洲一区| 一本色道久久综合亚洲精品高清| 亚洲精品激情| 一区二区国产在线观看| aa国产精品| 国产一区二区三区黄| 夜夜嗨一区二区| 国产精品一区视频网站| 午夜综合激情| 久久久久在线| 国产精品大片免费观看| 在线精品亚洲| 中文亚洲字幕| 香蕉亚洲视频| 久久综合伊人| 激情久久久久| 国产情侣久久| 美日韩精品免费| 欧美不卡一区| 黄色另类av| 国产日韩1区| 欧美成人69| 伊人色综合久久天天五月婷| 亚洲激情欧美| 六月婷婷久久| 黄色成人91| 亚洲男人影院| 韩国av一区| 亚洲永久免费| 欧美日韩一区二区三区在线视频| 1000部精品久久久久久久久| 国产精品女主播一区二区三区| 美女精品一区| 亚洲性感美女99在线| 国产一区二区高清| 欧美二区不卡| 国产日韩欧美| 黑人中文字幕一区二区三区| 99这里有精品| 欧美日韩一区二区视频在线观看 | 中日韩在线视频| 牛夜精品久久久久久久99黑人| 最新国产拍偷乱拍精品 | 久久高清国产| 激情久久婷婷| 美日韩精品视频| 在线日韩电影| 欧美日韩视频一区二区三区| 一区二区av| 精品不卡一区二区三区| 久久午夜激情| 国产日韩一区二区三区| 欧美日韩一区二区三区在线观看免| 亚洲少妇在线| 亚洲国产免费看| 欧美日韩一区综合| 久久久久国产精品一区三寸| 亚洲激情自拍| 亚洲高清激情| 精品不卡在线| 欧美三区美女| 欧美激情1区2区| 久久久噜噜噜久久狠狠50岁| 国产精品一区二区a| 亚洲九九精品| 亚洲韩日在线| 亚洲黄色在线| 亚洲激情不卡| 亚洲福利精品| 亚洲第一在线综合在线| 黄色免费成人| 国产一区自拍视频| 午夜性色一区二区三区免费视频| 久久久久久久久久久一区| 国产乱码精品| 国产美女诱惑一区二区| 国产日韩一区二区| 国产欧美三级| 国产一区91| 免费日韩视频| 可以免费看不卡的av网站| 久久性色av| 亚洲欧美在线网| 欧美三区不卡| 亚洲国产导航| 国产欧美亚洲一区| 亚洲欧美网站| 欧美ab在线视频| 国产精品99免费看| 伊人久久亚洲影院| 99亚洲视频| 久久成人一区| 欧美日韩理论| 在线成人亚洲| 国产精品亚洲综合| 久久美女性网| 国产精品大片免费观看| 亚洲国产欧洲综合997久久| 亚洲激情啪啪| 国产美女一区| 欧美一区影院| 在线精品观看| 免费视频久久| 黄色av成人| 国产精品一区视频| 欧美成人嫩草网站| 韩国亚洲精品| 国产欧美激情| 欧美成人日韩| 99热精品在线| 欧美一区激情视频在线观看| 激情视频一区二区三区| 亚洲免费影院| 好看的av在线不卡观看| 99亚洲视频| 欧美日韩在线精品| 国产精品亚洲综合久久| 欧美另类专区| 国产伦精品一区二区三区视频黑人| 蜜桃视频一区| 亚洲看片一区| 欧美日韩一区在线播放| 国产精品日韩一区二区| 狠久久av成人天堂| 久久青草久久| 国产亚洲精品v| 精品白丝av| 欧美精品99| 久久国产主播精品| 999亚洲国产精| 国色天香一区二区| 久久资源在线| 亚洲男女自偷自拍| 99日韩精品| 影音先锋国产精品| 欧美日韩国产免费观看| 久久国产日韩| 国产久一道中文一区| 日韩视频在线观看国产|