0

サーバーでホストされているパートナーのコンピューターにテキスト ファイルがあります。Android アプリケーションのテキスト ファイル内のすべての文字列値を取得しようとしています。ただし、私のアプリケーションはテキスト ファイルを読み取るために while ループ メソッドに入りません。それを解決する方法はありますか?私のコンピューターはパートナー サーバーに接続されています。

メソッドのコード。

connect.setOnClickListener(new View.OnClickListener(){
     public void onClick(View v){
         Thread trd = new Thread(new Runnable(){
             @Override
             public void run(){
                 //code to do the HTTP request
                 try {
                     URL url = new URL("insert url");//your website link
                     HttpURLConnection con = (HttpURLConnection)url.openConnection();
                     BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream()));
                     String line;
                     while((line = br.readLine()) != null){
                         result.setText(line);
                     }
                     con.disconnect();
                 } catch(IOException e) {
                     System.out.println("Error");
                 }
             }
        });
        trd.start();
    }
});
}
4

3 に答える 3

0
while((line = br.readLine()) != null)  {

   result.setText(line);

}

UI THread とは異なるスレッドで結果を実行することはできません。使用する

while((line = br.readLine()) != null)  {
final String finalLine = line;

runOnUiThread(new Runnable() {
 @Override
 public void run() {
       result.setText(finalLine);
  }
});
}
于 2013-05-14T08:17:22.877 に答える
0

多分NetworkOnMainThreadException当時のクビのせいだろうHttpURLConnection con = (HttpURLConnection)url.openConnection();

このエラーの原因となるハニカム以降のバージョンのメイン スレッドでネットワーク操作を実行しないでください。そのため、while ループは実行されません。

AsyncTask代わりにネットワーク操作を実行するために使用します。ここにリンクがあります: android.os.NetworkOnMainThreadException を修正するには?

于 2013-05-14T09:30:52.403 に答える
0

これを試して

 URL url= new URL("insert url");
    BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));
    StringBuilder result= new StringBuilder();
                String line;
                while ((line = br.readLine()) != null) {
                    result.append(line + "\n");
                }

                TextView.setText(result);
于 2013-05-14T09:04:37.967 に答える