Android 는 Android-query 프레임 워 크 를 사용 하여 개발 합 니 다(2)
15569 단어 android
1.권한 추가:
2.지원 하 는 타 입 JSONobject
JSONArray
String (HTML, XML)
XmlDom (XML parsing)
XmlPullParser (Large XML files)
byte array
User defined custom type (Transformer)
Bitmap
3.JSon 데 이 터 를 예 로 들 면 빨간색 부분 은 요청 한 데이터 형식 과 함께 변 경 됩 니 다.
String url = "http://www.google.com/uds/GnewsSearch?q=Obama&v=1.0";
aq.ajax(url,
JSONObject.
class,
new AjaxCallback<
JSONObject>() {
@Override
public
void callback(String url,
JSONObject json, AjaxStatus status) {
if(json !=
null){
//
successful ajax call, show status code and json content
Toast.makeText(aq.getContext(), status.getCode() + ":" + json.toString(), Toast.LENGTH_LONG).show();
}
else{
//
ajax error, show error code
Toast.makeText(aq.getContext(), "Error:" + status.getCode(), Toast.LENGTH_LONG).show();
}
}
});
위의 형식 도 아래 와 같이 쓸 수 있 는데,그들 은 무조건 대등 하 다.
public
void asyncJson(){
//
perform a Google search in just a few lines of code
String url = "http://www.google.com/uds/GnewsSearch?q=Obama&v=1.0";
aq.ajax(url,
JSONObject.
class,
this, "jsonCallback");
}
public
void jsonCallback(String url,
JSONObject json, AjaxStatus status){
if(json !=
null){
//
successful ajax call
}
else{
//
ajax error
}
}
AQuery 의 XmlDom 을 사용 하여 xml 를 해석 하 는 예 를 들 어 XML 이 너무 크 면 XMLpull Parser 를 사용 합 니 다.
public
void xml_ajax(){
String url = "https://picasaweb.google.com/data/feed/base/featured?max-results=8";
aq.ajax(url,
XmlDom.
class,
this, "picasaCb");
}
public
void picasaCb(String url,
XmlDom xml, AjaxStatus status){
//entry 의 결산 점 을 되 돌려 주 고 add 를 list 에 넣 습 니 다.
List
List
new ArrayList
String imageUrl =
null;
for(XmlDom entry: entries){
titles.add(entry.text("title")); //첫 번 째 노드 를 title 로 묶 은 텍스트 를 title 에 반복 합 니 다.
imageUrl = entry.tag("content", "type", "image/jpeg").attr("src");//첫 번 째 결점 은 content 이 고 속성 은 type 이 며 속성 값 은 image/jpeg 의 src 속성 값 을 imageUri 에 부여 합 니 다.
}
aq.id(R.id.image).image(imageUrl);
}
4.파일 을 저장 할 위 치 를 지정 하려 면 download 방법 을 사용 하 십시오.
String url = "https://picasaweb.google.com/data/feed/base/featured?max-results=16";
File ext = Environment.getExternalStorageDirectory();
File target = new File(ext, "aquery/myfolder/photos.xml");
aq.progress(R.id.progress).download(url, target, new AjaxCallback<File>(){
public void callback(String url, File file, AjaxStatus status) {
if(file != null){
showResult("File:" + file.length() + ":" + file, status);
}else{
showResult("Failed", status);
}
}
});
5.사용자 정의 형식(문서 예 는 gson 데이터 사용 대상 분석),문서 참조
6.Http Post(Multiple)사용
private void aync_multipart(){
String url = "https://graph.facebook.com/me/photos";
Map<String, Object> params = new HashMap<String, Object>();
params.put("message", "Message");
//Simply put a byte[] to the params, AQuery will detect it and treat it as a multi-part post
byte[] data = getImageData();
params.put("source", data);
//Alternatively, put a File or InputStream instead of byte[]
//File file = getImageFile();
//params.put("source", file);
AQuery aq = new AQuery(getApplicationContext());
aq.auth(handle).ajax(url, params, JSONObject.class, this, "photoCb");
}
7. ajax
String url = "http://www.google.com";
// 15 , expire -1,
long expire = 15 * 60 * 1000;
aq.ajax(url, String.class, expire, new AjaxCallback<String>() {
@Override
public void callback(String url, String html, AjaxStatus status) {
showResult(html);
}
});
8.캐 시 를 무효 화public void callback(String url, JSONObject json, AjaxStatus status) {
if(json != null){
if("1".equals(json.optString("status"))){
//do something
}else{
//
status.invalidate();
}
}
}
9.동기 호출:
ajax 호출 이 새로 열 린 스 레 드 라면 sync 방법 은 ajax 호출 이 끝 날 때 까지 스 레 드 를 막 을 수 있 습 니 다.sync 방법 을 주 스 레 드 에 사용 하면 Exception 을 일 으 킬 수 있 습 니 다.String url = "http://www.google.com/uds/GnewsSearch?q=Obama&v=1.0";
AjaxCallback<JSONObject> cb = new AjaxCallback<JSONObject>();
cb.url(url).type(JSONObject.class);
aq.sync(cb);
JSONObject jo = cb.getResult();
AjaxStatus status = cb.getStatus();
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.