2012-12-07 46 views
0

我正在使用Eclipse(Android開發人員工具) 此頁面給我兩個錯誤,請問有人可以解釋一下該怎麼做?Android編程httpclient

非常感謝!

package com.example.myproject; 

import java.io.BufferedReader; 
import java.io.InputStream; 
import java.io.InputStreamReader; 

import org.apache.http.HttpEntity; 
import org.apache.http.HttpResponse; 
import org.apache.http.client.methods.HttpGet; 
import org.apache.http.entity.BufferedHttpEntity; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.widget.TextView; 

public class InternetTest extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_internet_test); 

     // Internet test 

     HttpGet httppost = new HttpGet("http://myurl.com/test.txt"); 

     HttpResponse response = httpclient.execute(httppost); 
     HttpEntity ht = response.getEntity(); 

     BufferedHttpEntity buf = new BufferedHttpEntity(ht); 

     InputStream is = buf.getContent(); 


     BufferedReader r = new BufferedReader(new InputStreamReader(is)); 

     StringBuilder total = new StringBuilder(); 
     String line; 
     while ((line = r.readLine()) != null) { 
      total.append(line + "\n"); 
     } 

     TextView.setText(total); 

     // test done 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.activity_internetseiten_test, menu); 
     return true; 
    } 

} 

的錯誤:

「的HttpClient解決不了」

「不能讓從類型TextView的靜態參考無靜電梅索德的setText(CharSequence的)」

我進口外部罐子(這些:http://hc.apache.org/downloads.cgi

謝謝!

+1

如果您右鍵單擊該錯誤。它說什麼?我敢打賭它說'導入HttpClient',點擊它。 – RvdK

+0

for「無法對類型爲TextView的非靜態方法setText(CharSequence)進行靜態引用使TextView的對象可能是佈局文件中使用findViewById(R.id.xxx)聲明的TextView的對象,因爲setText用於對象不是Class。 – curious

回答

0

,因爲你永遠的避風港指定什麼httpClient是第一個錯誤引起。

HttpClient httpClient = new DefaultHttpClient(params); 
    HttpResponse response = httpclient.execute(httppost); 
    HttpEntity ht = response.getEntity(); 

第二個問題是因爲您正在對非靜態函數進行靜態調用。您必須告訴系統使用TextView來設置文本。不知道它的名字,我只是大致向你展示它是如何完成的。

((TextView) findViewById(R.id.someTextBox)).setText(total); 
0

初始化的HttpClient使用它之前..

HttpParams params = new BasicHttpParams(); 
     HttpConnectionParams.setConnectionTimeout(params, 1000 * 60); 
     HttpConnectionParams.setSoTimeout(params, 0); 
HttpClient httpClient = new DefaultHttpClient(params); 

,並從佈局文本視圖,並設置

((TextView) findViewById(R.id.text_view)).setText(total);