沉香亭北 2017-06-18 07:06 采纳率: 0%
浏览 1148

使用Android的URL访问链接,无返回数据

Android新手使用Android的URL访问链接,无返回数据;修改了权限,也使用了子线程。还是无法解决,希望大神们帮助

代码
package com.example.begnoia.dictionary;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import java.io.*;
import java.net.*;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private EditText editText;
TextView textView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.layout_main);
    editText = (EditText) findViewById(R.id.edit_text);
    Button button = (Button) findViewById(R.id.button);
    textView = (TextView) findViewById(R.id.text_view);
    button.setOnClickListener(this);
}

public void onClick(View v) {
    if (v.getId() == R.id.button)
        sendRequestWithHttpURLConnection();
   }
 private void sendRequestWithHttpURLConnection() {
    new Thread(){
        public void run() {
            HttpURLConnection connection = null;
            BufferedReader reader = null;
            String text=null;
            try {
                URL url = new URL("http://www.baidu.com");
                connection = (HttpURLConnection) url.openConnection();
                connection.setRequestMethod("GET");
                connection.setConnectTimeout(8000);
                connection.setReadTimeout(8000);
                connection.connect();
                InputStream in = connection.getInputStream();
                reader = new BufferedReader(new InputStreamReader(in,"UTF-8"));
                String line;
                while ((line = reader.readLine()) != null) {
                    text=text+line;
                }
                textView.setText(text);
            } catch (Exception e) {
                e.printStackTrace();
            }
            connection.disconnect();
        }
    }.start();
}

}

  • 写回答

4条回答 默认 最新

  • RoidCoder 2017-06-18 07:47
    关注

    textView.setText(text); 子线程中不能操作跟UI相关的,可以使用Handler+Message的形式,在主线程中设置TextView值

    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!