2013-05-06 29 views
1

我试图从网站阅读文本。我使用教程。 这里是我的Java从网站阅读文本不工作(BufferedReader,InputStream)Android,Eclipse

​​

这里的代码是XML布局

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical" > 

<TextView 
    android:textIsSelectable="true" 
    android:id="@+id/netResult" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" /> 

是的,我添加权限到Android清单

什么也不显示当我运行它

任何人都可以帮助我吗?我不知道我在做什么错

这里是日志

05-06 10:39:15.501: W/NetworkManagementSocketTagger(887): setKernelCountSet(10012, 0) failed with errno -2 
05-06 10:39:16.371: I/ActivityManager(887): START {cmp=nl.liacs.team6.stapp/.Info} from pid 1488 
05-06 10:39:16.371: W/WindowManager(887): Failure taking screenshot for (180x300) to layer 21010 
05-06 10:39:16.660: I/ActivityManager(887): Displayed nl.liacs.team6.stapp/.Info: +267ms 

太感谢你了!

编辑

public class Jokes extends Activity { 

public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.jokes); 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 
     //dit is t textview element, gevonden door id van de XML layout jokes 
     TextView myListView = (TextView)findViewById(R.id.netResult); 
     new loadSomeStuff().execute(FILENAME);  
     }// onCreate 

public class loadSomeStuff extends AsyncTask<String, Integer, String>{ 

    @Override 
    protected String doInBackground(String... params) { 
     // TODO Auto-generated method stub 
     //proberen met internet te connecten 
     try{ 
      //maak nieuw client object 
      HttpClient httpclient = new DefaultHttpClient(); 

      //post to onze url, site is voorbeeld 
      HttpPost httppost = new HttpPost("http://ephemeraltech.com/demo/android_tutorial20.php"); 

      //voor post uit en get response 
      HttpResponse response = httpclient.execute(httppost); 

      //get message from response 
      HttpEntity entity = response.getEntity(); 

      //get content van message 
      InputStream webs = entity.getContent(); 

      //nu hebben we response, convert to string 

      try 
      { 
       BufferedReader reader = new BufferedReader(new InputStreamReader(webs, "iso-8859-1"), 8); 
       //dit is t textview element, gevonden door id van de XML layout jokes 
       TextView myListView = (TextView)findViewById(R.id.netResult); 
       //lees 1 lijn van text 
       myListView.setText(reader.readLine()); 
       //sluiten 
       webs.close(); 

      }catch(Exception e){ 
       Log.e("log_tag", "Error converting result "+e.toString()); 
      } 
     }catch(Exception e){ 
      Log.e("log_tag", "Error in http connection "+e.toString()); 
     } 
return null; 
} 
} 
} 

我不知道我在做什么寄托都表示,其所有新的给我,但感谢所有的你们有所帮助。

+0

你检查的天气响应来不来当前的异步任务?以及如何直接将文本设置为列表视图?没有解析?甚至不知道什么是数据类型和大小? – 2013-05-06 10:44:05

+0

你有试过调​​试吗?请尽量得到什么响应从服务器....未来 – 2013-05-06 10:45:49

回答

0

首先请添加以下代码来体现

<uses-permission android:name="android.permission.INTERNET"/> 

然后把你的所有网络代码无论是在线程或异步到任务的doinbackground方法。

这将解决您的问题。

你可以打电话使用

new loadstuff.execute("url"); 

public class loadSomeStuff extends AsyncTask<String, Integer, String>{ 

    String result=null; 

    @Override 
    protected String doInBackground(String... params) { 
     // TODO Auto-generated method stub 
     //proberen met internet te connecten 
     try{ 
      //maak nieuw client object 
      HttpClient httpclient = new DefaultHttpClient(); 

      //post to onze url, site is voorbeeld 
      HttpPost httppost = new HttpPost("http://ephemeraltech.com/demo/android_tutorial20.php"); 

      //voor post uit en get response 
      HttpResponse response = httpclient.execute(httppost); 

      //get message from response 
      HttpEntity entity = response.getEntity(); 

      //get content van message 
      InputStream webs = entity.getContent(); 

      //nu hebben we response, convert to string 

      try 
      { 
       BufferedReader reader = new BufferedReader(new InputStreamReader(webs, "iso-8859-1"), 8); 

       //text view removed from here 
       result=reader.readline(); 

       //sluiten 
       webs.close(); 

      }catch(Exception e){ 
       Log.e("log_tag", "Error converting result "+e.toString()); 
      } 
     }catch(Exception e){ 
      Log.e("log_tag", "Error in http connection "+e.toString()); 
     } 
return null; 
} 

onPostExecute(){ 

      //declare your text view here & assign result to your text view. 
      myTextView.setText(result); 

    } 
} 
+0

非常感谢,但我不什么Im做 我已经编辑我的代码在原来的问题 首先,我有这个新类loadSomeStuff了执行的东西,但文件名不能解决变量,我放什么? 第二,我想从网站上阅读文字,我为这个asynctask做了什么参数? (字符串,整数,字符串)是否正确? 三,现在我明白asynctask会返回一些东西,我该如何返回文本? 再次感谢。 – user2324010 2013-05-06 14:55:15