主程式1- package com.aa.bb;
- import android.app.Activity;
- import android.content.Intent;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.Button;
- import android.widget.TextView;
- public class TestActivity extends Activity {
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- final TextView txtBookName = (TextView) this
- .findViewById(R.id.txtBookName);
- Button btSearch = (Button) this.findViewById(R.id.btSearch);
- btSearch.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Intent intent = new Intent(TestActivity.this, DisplayBook.class);
- intent.putExtra("BookName", txtBookName.getText().toString());
- startActivity(intent);
- }
- });
- }
- }
複製代碼 主程式2- package com.aa.bb;
- import java.io.BufferedReader;
- import java.io.InputStreamReader;
- import java.net.URL;
- import java.net.URLConnection;
- import java.util.ArrayList;
- import java.util.HashMap;
- import org.codehaus.jackson.map.ObjectMapper;
- import android.app.ListActivity;
- import android.os.Bundle;
- import android.widget.SimpleAdapter;
- public class DisplayBook extends ListActivity {
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- String bookName = this.getIntent().getExtras().getString("BookName");
- try {
- URL url = new URL("https://www.googleapis.com/books/v1/volumes?q="
- + bookName);
- URLConnection con = url.openConnection();
- BufferedReader br = new BufferedReader(new InputStreamReader(
- con.getInputStream()));
- String data = null;
- StringBuffer result = new StringBuffer();
- while ((data = br.readLine()) != null) {
- result.append(data);
- }
- ObjectMapper mapper = new ObjectMapper();
- BookInfo bi = mapper.readValue(result.toString(), BookInfo.class);
- ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();
- for (Items item : bi.getItems()) {
- HashMap<String, String> map = new HashMap<String, String>();
- map.put("title", item.getVolumeInfo().getTitle());
- map.put("subTitle", item.getVolumeInfo().getSubtitle());
- list.add(map);
- }
- SimpleAdapter adapter = new SimpleAdapter(this, list, R.layout.row,
- new String[] { "title", "subTitle" }, new int[] {
- R.id.txtTitle, R.id.txtSubTitle });
- this.setListAdapter(adapter);
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- }
- }
複製代碼 附屬類別1- package com.aa.bb;
- import java.util.ArrayList;
- import java.util.List;
- import org.codehaus.jackson.annotate.JsonIgnoreProperties;
- @JsonIgnoreProperties(ignoreUnknown=true)
- public class BookInfo {
- private int totalItems;
- private List<Items> items = new ArrayList<Items>();
- public int getTotalItems() {
- return totalItems;
- }
- public void setTotalItems(int totalItems) {
- this.totalItems = totalItems;
- }
- public List<Items> getItems() {
- return items;
- }
- public void setItems(List<Items> items) {
- this.items = items;
- }
-
- }
複製代碼 附屬類別2- package com.aa.bb;
- import org.codehaus.jackson.annotate.JsonIgnoreProperties;
- @JsonIgnoreProperties(ignoreUnknown = true)
- public class Items {
- private String kind;
- private VolumeInfo volumeInfo;
- public String getKind() {
- return kind;
- }
- public void setKind(String kind) {
- this.kind = kind;
- }
- public VolumeInfo getVolumeInfo() {
- return volumeInfo;
- }
- public void setVolumeInfo(VolumeInfo volumeInfo) {
- this.volumeInfo = volumeInfo;
- }
-
- }
複製代碼 附屬類別3- package com.aa.bb;
- import org.codehaus.jackson.annotate.JsonIgnoreProperties;
- @JsonIgnoreProperties(ignoreUnknown = true)
- public class VolumeInfo {
- private String title;
- private String subtitle;
- public String getTitle() {
- return title;
- }
- public void setTitle(String title) {
- this.title = title;
- }
- public String getSubtitle() {
- return subtitle;
- }
- public void setSubtitle(String subtitle) {
- this.subtitle = subtitle;
- }
-
- }
複製代碼 這個是讓使用者查詢書名,很雞肋的程式
下次說要做來電警衛
寫好了再分享給大家 |