Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 11

Lp trnh Android

Bi
61

Tng tc dch v
Web dng JSON dng
GSON

Ths. Trn Duy Thanh duythanhcse@gmail.com 0987773061 http://duythanhcse.wordpress.com

Lp trnh Android

Ni dung bi hc

JSON dng Gson l g?


Th vin m hnh ha d liu t d
liu Gson qua m hnh lp i tng
Dng nh dng d liu rt hay,
c s dng rt nhiu hin nay

Ths. Trn Duy Thanh duythanhcse@gmail.com 0987773061 http://duythanhcse.wordpress.com

Lp trnh Android

Demo ly thng tin t Google


Search API
String keyword = txtKeyword.getText().toString();
String api = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=";
String address = api + URLEncoder.encode(keyword, "UTF-8")+"&start="+position+"&rsz=8";

I:\Topica\codingthamkhao\SourceCode_CU\BaitapModule4s2356\HocJSo
nBai2

Ths. Trn Duy Thanh duythanhcse@gmail.com 0987773061 http://duythanhcse.wordpress.com

Lp trnh Android

C php:
http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q={thngtincn
tm}&start={vtrbtulc}&rsz={blocklc}
q:lthngtinbncntmkimtrnmng
start:lvtrbtulc
rsz:lblocklc(bnchchn2loiblockl4hoc8;tclmilnlyv4hoc
8ktqu),
NhvynubnmuntruyvnthtnhiuthngtinthbnnnchnBisca
rszrichovnglpchytheobcstart=start+rsz

Ths. Trn Duy Thanh duythanhcse@gmail.com 0987773061 http://duythanhcse.wordpress.com

Lp trnh Android

Ths. Trn Duy Thanh duythanhcse@gmail.com 0987773061 http://duythanhcse.wordpress.com

Lp trnh Android

public class Result {


private String url;
private String titleNoFormatting;
public String getUrl() {
return url;
}

Phn tch vo to cc
lp Model

public void setUrl(String url) {


this.url = url;
}
public String getTitleNoFormatting() {
return titleNoFormatting;
}
public void setTitleNoFormatting(String titleNoFormatting) {
this.titleNoFormatting = titleNoFormatting;
}
@Override
public String toString() {
return this.titleNoFormatting;
}
}

Ths. Trn Duy Thanh duythanhcse@gmail.com 0987773061 http://duythanhcse.wordpress.com

Lp trnh Android

public class ResponseData {


private List<Result>results;
public List<Result> getResults() {
return results;
}
public void setResults(List<Result> results) {
this.results = results;
}
}

Ths. Trn Duy Thanh duythanhcse@gmail.com 0987773061 http://duythanhcse.wordpress.com

Lp trnh Android

public class GoogleData {


private ResponseData responseData;
public ResponseData getResponseData() {
return responseData;
}
public void setResponseData(ResponseData responseData) {
this.responseData = responseData;
}
}

Ths. Trn Duy Thanh duythanhcse@gmail.com 0987773061 http://duythanhcse.wordpress.com

Lp trnh Android

protected GoogleData doInBackground(String... params) {


GoogleData data=null;
try
{
URL url=new URL(params[0]);
InputStreamReader reader=new
InputStreamReader(url.openStream(),"UTF-8");
//lnh a ton b nh dng t Json v Model class
data=new Gson().fromJson(reader,GoogleData.class);
}
catch (Exception ex)
{
Log.e("LOI_BACKGROUND",ex.toString());
}
return data;
}

Ths. Trn Duy Thanh duythanhcse@gmail.com 0987773061 http://duythanhcse.wordpress.com

Lp trnh Android

if(googleData.getResponseData()!=null)
{
List<Result> dsKQ= googleData.
getResponseData().
getResults();
if(dsKQ!=null)
{
adapter.addAll(dsKQ);
}
}

Ths. Trn Duy Thanh duythanhcse@gmail.com 0987773061 http://duythanhcse.wordpress.com

Lp trnh Android

END
Ths. Trn Duy Thanh duythanhcse@gmail.com 0987773061 http://duythanhcse.wordpress.com

You might also like