從android透過HttpGet連結ApacheTomcat取回資料顯示在ListView中
by 廖俊維 2012-12-01 21:48:17, 回應(0), 人氣(580)
首先準備一個table.jsp程式,放在ApacheTomcat的網站ROOT中,
被呼叫時,傳回一串資料:
<%@ page contentType="text/html;charset=utf-8" %> <% out.println("<RSPN>A,一中商圈"); out.println("<RSPN>B,一中商圈"); out.println("<RSPN>C,一中商圈"); out.println("<RSPN>D,一中商圈"); out.println("<RSPN>E,一中商圈"); out.println("<RSPN>F,一中商圈"); out.println("<RSPN>G,一中商圈"); %> |
其中第1行,是確保傳到android端時的中文不會變亂碼。
接著在Android中建立一個專案,其中的主程式,假設叫Test2.java,
注意,在ListActivity的onCreate()方法中,不可以setContentView(),否則會有問題。
public class Test2 extends ListActivity { public void onCreate(Bundle savedInstanceState) { private void GetURLDate() {
try{ HttpClient client = new DefaultHttpClient(); String cmd = "http://163.17.84.153/table1.jsp"; HttpGet get = new HttpGet(cmd); HttpResponse response = client.execute(get); HttpEntity entity = response.getEntity(); BufferedReader reader = new BufferedReader( new InputStreamReader (entity.getContent()));
String raw,msg=""; while ((raw = reader.readLine()) != null) { if (raw.startsWith("<RSPN>")) { msg=raw.substring(6); String []str1=msg.split(","); HashMap<String,String> item = new HashMap<String,String>(); item.put("MarketName", str1[0]); item.put("MarketNameNO", str1[1]); datas.add(item); } } SimpleAdapter adapter = new SimpleAdapter(this,datas,
android.R.layout.simple_list_item_2, new String[] {"MarketName" , "MarketNameNO"}, new int[] { android.R.id.text1, android.R.id.text2 } ); setListAdapter(adapter); getListView().setTextFilterEnabled(true); reader.close(); }catch (Exception ee){ System.out.println(ee.toString()); } } } |
記得「android.permission.INTERNET」的權限要開放。
執行結果如下:
回應