0

ウェブサイトのコンテンツを取得してAndroidアプリに表示するには、最初にどのタスクを実行する必要がありますか?それはウェブサービス、Http Responseですか?私はstackoverflowの人々に与えられたように多くのチュートリアルとリンクをたどっていましたが、それでも私のタスクを完了できなかったので、最後にリンクをたどりましたandroid / webserviceの作業のための簡単なチュートリアルが必要ですか?、FirstActivityクラスのxml.getItemList()でエラーが発生します。Xmlファイルは

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android1="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<ListView
    android1:id="@+id/listView1"
    android1:layout_width="match_parent"
    android1:layout_height="wrap_content" >
</ListView>

MainActivityコードは次のとおりです。

    package com.webservices;

public class FirstActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_first);

          FetchList fl = new FetchList();
           fl.execute();
           }
   //Always better to use async task for these purposes
    public class FetchList extends asyncTask<Void,Void,Byte>{

        protected String doinbackground(string... urls){
             // this was explained in first step
              Response res = new Response("http://www.google.com");
              String response = res.getResponse();
              XMLParser xml = new XMLParser(response);
               ArrayList<item> itemList = xml.getItemList();
               xml.parse();
          };

        public void execute() {
            // TODO Auto-generated method stub
                }
         }
Response class is:
public class Response {
String get_url, response;
Activity activity;

public Response(String url){
    this.get_url = url;

}

public String getResponse(){
     InputStream in = null;        
      byte[] data = new byte[1000];
        try {
              URL url = new URL(get_url);   
              URLConnection conn = url.openConnection();
              conn.connect();
            /*  conn.*/
              in = conn.getInputStream();
              Log.d("Buffer Size +++++++++++++", ""+in.toString().length());
              BufferedReader rd = new BufferedReader(new InputStreamReader(in),in.toString().length());
              String line;
              StringBuilder sb =  new StringBuilder();
              while ((line = rd.readLine()) != null) {
                    sb.append(line);
              }
              rd.close();
              response = sb.toString();

             in.read(data);
          Log.d("INPUT STREAM PROFILE RESPONSE",response);
            in.close();
        } catch (IOException e1) {
            Log.d("CONNECTION  ERROR", "+++++++++++++++++++++++++++");
            // TODO Auto-generated catch block

            e1.printStackTrace();
        }
        return response;
}
4

1 に答える 1

0

あなたの質問はあまり明確ではありません。xml パーサーを使用して Google インデックス ページを解析するのはなぜですか?

あなたがしたい:

 protected String doinbackground(string... urls){
    HttpUrlConnection conn = new URL( urls[0] ).openConnection();
    BufferedReader reader = new BufferedReader( conn.getInputStream() );
    String s = reader.readFully();    
};

または、このようなもの(例外処理あり)。

ネットワークに AsyncTask を使用しないことをお勧めします。RoboSpiceを見てください。ネットワーク リクエストに適しています。

于 2012-11-15T07:56:56.977 に答える