私有字符串readStream(InputStream in)引发IOException{ BufferedReader bin=新的BufferedReader(新的InputStreamReader(in)); //暂时的 试一试{ StringBuilder sb=新的StringBuilder(); 字符串输入线; 而((inputLine=bin.readLine())!=null){ 某人附加(输入线); } 使某人返回字符串(); }最后{ } } //[(结束)读取流--> @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_third2); text=(TextView)findViewById(R.id.TextView); 新建JSONTask()。执行(“https://jsonparsingdemo-cec5b.firebaseapp.com/jsonData/moviesDemoItem.txt"); } } //[(结束)文件:ThirdActivity]--> //[(开始)文件:JSONTask]--> package com.example.caleb.splash_屏幕; 导入android.app.Activity; 导入android.content.Context; 导入android.os.AsyncTask; 导入android.support.v4.widget.TextViewCompat; 导入android.support.v7.app.AppActivity; 导入android.util.Log; 导入android.widget.TextView; 导入java.io.BufferedReader; 导入java.io.IOException; 导入java.io.InputStream; 导入java.io.InputStreamReader; 导入java.net.HttpURLConnection; 导入java.net.MalformedURLException; 导入java.net.URL; /** *由Caleb于2017年12月17日创建。 */ 公共类JSONTask扩展了异步任务{ //final TextView txt=(TextView)findViewById(R.id.TextView); 私人语境; 公共JSONTask(活动三){ 上下文=第三活动; } @凌驾 受保护的字符串doInBackground(字符串…参数){ BufferedReader reader=null; HttpURLConnection-urlConnection=null; //{(启动)]工作连接:警报!代码中的错误将导致崩溃--> 试一试{ URL=新URL(参数[0]); Log.w(“测试”、“测试”); urlConnection=(HttpURLConnection)url.openConnection(); urlConnection.setRequestMethod(“GET”); urlConnection.setDoOutput(false); urlConnection.connect(); //urlConnection.setChunkedStreamingMode(0); //OutputStream out=新的BufferedOutputStream(urlConnection.getOutputStream()); //writeStream(输出); /*int a=urlConnection.getResponseCode(); 字符串b=String.valueOf(a); Log.e(b,“是”)*/ InputStream in=urlConnection.getInputStream(); //InputStream in=new BufferedInputStream(urlConnection.getInputStream()); reader=新的BufferedReader(新的InputStreamReader(in)); StringBuffer=新的StringBuffer(); 字符串行=”; 而((line=reader.readLine())!=null){ buffer.append(行); } /*字符串数据=读取流(in); /*最终文本视图文本视图=(文本视图)findViewById(R.id.TextView); setText(“你好”); */ 返回buffer.toString(); }捕获(格式错误){ e、 printStackTrace(); }捕获(IOE异常){ 抛出新的运行时异常(e); }最后{ if(urlConnection!=null){ urlConnection.disconnect(); } 试一试{ if(读卡器!=null){ reader.close(); } }捕获(IOE异常){ e、 printStackTrace(); } } //{(结束)]工作连接--> 返回null; } @凌驾 受保护的void onPostExecute(字符串结果){ super.onPostExecute(结果); TextView text=(TextView)((AppCompatActivity)context.findViewById(R.id.TextView); text.setText(结果); } } //[(结束)文件:JSONTask]-->,java,google-app-engine,Java,Google App Engine" /> 私有字符串readStream(InputStream in)引发IOException{ BufferedReader bin=新的BufferedReader(新的InputStreamReader(in)); //暂时的 试一试{ StringBuilder sb=新的StringBuilder(); 字符串输入线; 而((inputLine=bin.readLine())!=null){ 某人附加(输入线); } 使某人返回字符串(); }最后{ } } //[(结束)读取流--> @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_third2); text=(TextView)findViewById(R.id.TextView); 新建JSONTask()。执行(“https://jsonparsingdemo-cec5b.firebaseapp.com/jsonData/moviesDemoItem.txt"); } } //[(结束)文件:ThirdActivity]--> //[(开始)文件:JSONTask]--> package com.example.caleb.splash_屏幕; 导入android.app.Activity; 导入android.content.Context; 导入android.os.AsyncTask; 导入android.support.v4.widget.TextViewCompat; 导入android.support.v7.app.AppActivity; 导入android.util.Log; 导入android.widget.TextView; 导入java.io.BufferedReader; 导入java.io.IOException; 导入java.io.InputStream; 导入java.io.InputStreamReader; 导入java.net.HttpURLConnection; 导入java.net.MalformedURLException; 导入java.net.URL; /** *由Caleb于2017年12月17日创建。 */ 公共类JSONTask扩展了异步任务{ //final TextView txt=(TextView)findViewById(R.id.TextView); 私人语境; 公共JSONTask(活动三){ 上下文=第三活动; } @凌驾 受保护的字符串doInBackground(字符串…参数){ BufferedReader reader=null; HttpURLConnection-urlConnection=null; //{(启动)]工作连接:警报!代码中的错误将导致崩溃--> 试一试{ URL=新URL(参数[0]); Log.w(“测试”、“测试”); urlConnection=(HttpURLConnection)url.openConnection(); urlConnection.setRequestMethod(“GET”); urlConnection.setDoOutput(false); urlConnection.connect(); //urlConnection.setChunkedStreamingMode(0); //OutputStream out=新的BufferedOutputStream(urlConnection.getOutputStream()); //writeStream(输出); /*int a=urlConnection.getResponseCode(); 字符串b=String.valueOf(a); Log.e(b,“是”)*/ InputStream in=urlConnection.getInputStream(); //InputStream in=new BufferedInputStream(urlConnection.getInputStream()); reader=新的BufferedReader(新的InputStreamReader(in)); StringBuffer=新的StringBuffer(); 字符串行=”; 而((line=reader.readLine())!=null){ buffer.append(行); } /*字符串数据=读取流(in); /*最终文本视图文本视图=(文本视图)findViewById(R.id.TextView); setText(“你好”); */ 返回buffer.toString(); }捕获(格式错误){ e、 printStackTrace(); }捕获(IOE异常){ 抛出新的运行时异常(e); }最后{ if(urlConnection!=null){ urlConnection.disconnect(); } 试一试{ if(读卡器!=null){ reader.close(); } }捕获(IOE异常){ e、 printStackTrace(); } } //{(结束)]工作连接--> 返回null; } @凌驾 受保护的void onPostExecute(字符串结果){ super.onPostExecute(结果); TextView text=(TextView)((AppCompatActivity)context.findViewById(R.id.TextView); text.setText(结果); } } //[(结束)文件:JSONTask]-->,java,google-app-engine,Java,Google App Engine" />

我想通过从httpurlconnection获取的json数据来实现TextView /[(开始)文件:ThirdActivity.java]--> package com.example.caleb.splash_屏幕; 导入android.os.AsyncTask; 导入android.support.v7.app.AppActivity; 导入android.os.Bundle; 导入android.util.Log; 导入android.widget.TextView; 导入java.io.*; 导入java.net.HttpURLConnection; 导入java.net.MalformedURLException; 导入java.net.URL; 导入java.io.IOException; 导入java.io.OutputStream; 公共类第三个活动扩展了应用程序活动{ //公共字符串文本=”https://jsonparsingdemo-cec5b.firebaseapp.com/jsonData/moviesDemoItem.txt"; 公共文本查看文本; 私有void writeStream(输出流输出){ 字符串输出=“你好世界”; //out.write(output.getBytes()); //out.flush(); } /*私有字符串读取流(InputStream为){ 请尝试{`在此处输入代码` ByteArrayOutputStream bo=新建ByteArrayOutputStream(); int i=is.read(); 而(i!=-1){ bo.write(i); i=is.read(); } 返回bo.toString(); }捕获(IOE异常){ 返回“”; } }*/ //[(开始)读取流--> 私有字符串readStream(InputStream in)引发IOException{ BufferedReader bin=新的BufferedReader(新的InputStreamReader(in)); //暂时的 试一试{ StringBuilder sb=新的StringBuilder(); 字符串输入线; 而((inputLine=bin.readLine())!=null){ 某人附加(输入线); } 使某人返回字符串(); }最后{ } } //[(结束)读取流--> @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_third2); text=(TextView)findViewById(R.id.TextView); 新建JSONTask()。执行(“https://jsonparsingdemo-cec5b.firebaseapp.com/jsonData/moviesDemoItem.txt"); } } //[(结束)文件:ThirdActivity]--> //[(开始)文件:JSONTask]--> package com.example.caleb.splash_屏幕; 导入android.app.Activity; 导入android.content.Context; 导入android.os.AsyncTask; 导入android.support.v4.widget.TextViewCompat; 导入android.support.v7.app.AppActivity; 导入android.util.Log; 导入android.widget.TextView; 导入java.io.BufferedReader; 导入java.io.IOException; 导入java.io.InputStream; 导入java.io.InputStreamReader; 导入java.net.HttpURLConnection; 导入java.net.MalformedURLException; 导入java.net.URL; /** *由Caleb于2017年12月17日创建。 */ 公共类JSONTask扩展了异步任务{ //final TextView txt=(TextView)findViewById(R.id.TextView); 私人语境; 公共JSONTask(活动三){ 上下文=第三活动; } @凌驾 受保护的字符串doInBackground(字符串…参数){ BufferedReader reader=null; HttpURLConnection-urlConnection=null; //{(启动)]工作连接:警报!代码中的错误将导致崩溃--> 试一试{ URL=新URL(参数[0]); Log.w(“测试”、“测试”); urlConnection=(HttpURLConnection)url.openConnection(); urlConnection.setRequestMethod(“GET”); urlConnection.setDoOutput(false); urlConnection.connect(); //urlConnection.setChunkedStreamingMode(0); //OutputStream out=新的BufferedOutputStream(urlConnection.getOutputStream()); //writeStream(输出); /*int a=urlConnection.getResponseCode(); 字符串b=String.valueOf(a); Log.e(b,“是”)*/ InputStream in=urlConnection.getInputStream(); //InputStream in=new BufferedInputStream(urlConnection.getInputStream()); reader=新的BufferedReader(新的InputStreamReader(in)); StringBuffer=新的StringBuffer(); 字符串行=”; 而((line=reader.readLine())!=null){ buffer.append(行); } /*字符串数据=读取流(in); /*最终文本视图文本视图=(文本视图)findViewById(R.id.TextView); setText(“你好”); */ 返回buffer.toString(); }捕获(格式错误){ e、 printStackTrace(); }捕获(IOE异常){ 抛出新的运行时异常(e); }最后{ if(urlConnection!=null){ urlConnection.disconnect(); } 试一试{ if(读卡器!=null){ reader.close(); } }捕获(IOE异常){ e、 printStackTrace(); } } //{(结束)]工作连接--> 返回null; } @凌驾 受保护的void onPostExecute(字符串结果){ super.onPostExecute(结果); TextView text=(TextView)((AppCompatActivity)context.findViewById(R.id.TextView); text.setText(结果); } } //[(结束)文件:JSONTask]-->

我想通过从httpurlconnection获取的json数据来实现TextView /[(开始)文件:ThirdActivity.java]--> package com.example.caleb.splash_屏幕; 导入android.os.AsyncTask; 导入android.support.v7.app.AppActivity; 导入android.os.Bundle; 导入android.util.Log; 导入android.widget.TextView; 导入java.io.*; 导入java.net.HttpURLConnection; 导入java.net.MalformedURLException; 导入java.net.URL; 导入java.io.IOException; 导入java.io.OutputStream; 公共类第三个活动扩展了应用程序活动{ //公共字符串文本=”https://jsonparsingdemo-cec5b.firebaseapp.com/jsonData/moviesDemoItem.txt"; 公共文本查看文本; 私有void writeStream(输出流输出){ 字符串输出=“你好世界”; //out.write(output.getBytes()); //out.flush(); } /*私有字符串读取流(InputStream为){ 请尝试{`在此处输入代码` ByteArrayOutputStream bo=新建ByteArrayOutputStream(); int i=is.read(); 而(i!=-1){ bo.write(i); i=is.read(); } 返回bo.toString(); }捕获(IOE异常){ 返回“”; } }*/ //[(开始)读取流--> 私有字符串readStream(InputStream in)引发IOException{ BufferedReader bin=新的BufferedReader(新的InputStreamReader(in)); //暂时的 试一试{ StringBuilder sb=新的StringBuilder(); 字符串输入线; 而((inputLine=bin.readLine())!=null){ 某人附加(输入线); } 使某人返回字符串(); }最后{ } } //[(结束)读取流--> @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_third2); text=(TextView)findViewById(R.id.TextView); 新建JSONTask()。执行(“https://jsonparsingdemo-cec5b.firebaseapp.com/jsonData/moviesDemoItem.txt"); } } //[(结束)文件:ThirdActivity]--> //[(开始)文件:JSONTask]--> package com.example.caleb.splash_屏幕; 导入android.app.Activity; 导入android.content.Context; 导入android.os.AsyncTask; 导入android.support.v4.widget.TextViewCompat; 导入android.support.v7.app.AppActivity; 导入android.util.Log; 导入android.widget.TextView; 导入java.io.BufferedReader; 导入java.io.IOException; 导入java.io.InputStream; 导入java.io.InputStreamReader; 导入java.net.HttpURLConnection; 导入java.net.MalformedURLException; 导入java.net.URL; /** *由Caleb于2017年12月17日创建。 */ 公共类JSONTask扩展了异步任务{ //final TextView txt=(TextView)findViewById(R.id.TextView); 私人语境; 公共JSONTask(活动三){ 上下文=第三活动; } @凌驾 受保护的字符串doInBackground(字符串…参数){ BufferedReader reader=null; HttpURLConnection-urlConnection=null; //{(启动)]工作连接:警报!代码中的错误将导致崩溃--> 试一试{ URL=新URL(参数[0]); Log.w(“测试”、“测试”); urlConnection=(HttpURLConnection)url.openConnection(); urlConnection.setRequestMethod(“GET”); urlConnection.setDoOutput(false); urlConnection.connect(); //urlConnection.setChunkedStreamingMode(0); //OutputStream out=新的BufferedOutputStream(urlConnection.getOutputStream()); //writeStream(输出); /*int a=urlConnection.getResponseCode(); 字符串b=String.valueOf(a); Log.e(b,“是”)*/ InputStream in=urlConnection.getInputStream(); //InputStream in=new BufferedInputStream(urlConnection.getInputStream()); reader=新的BufferedReader(新的InputStreamReader(in)); StringBuffer=新的StringBuffer(); 字符串行=”; 而((line=reader.readLine())!=null){ buffer.append(行); } /*字符串数据=读取流(in); /*最终文本视图文本视图=(文本视图)findViewById(R.id.TextView); setText(“你好”); */ 返回buffer.toString(); }捕获(格式错误){ e、 printStackTrace(); }捕获(IOE异常){ 抛出新的运行时异常(e); }最后{ if(urlConnection!=null){ urlConnection.disconnect(); } 试一试{ if(读卡器!=null){ reader.close(); } }捕获(IOE异常){ e、 printStackTrace(); } } //{(结束)]工作连接--> 返回null; } @凌驾 受保护的void onPostExecute(字符串结果){ super.onPostExecute(结果); TextView text=(TextView)((AppCompatActivity)context.findViewById(R.id.TextView); text.setText(结果); } } //[(结束)文件:JSONTask]-->,java,google-app-engine,Java,Google App Engine,/预期效果/ 大宗报价 我想从url指向的json文件中提取数据,并在名为TextView的UI中更改TextView。我不知道如何在AsyncTask中访问findviewbyid。我在整个internet上都搜索过,但找不到任何内容:(非常感谢您的建议!!请尝试弱引用以在asynctask中获取textview //调用异步任务 //[(START)File:ThirdActivity.java] --> package com.example.caleb.splash_screen;

/预期效果/

大宗报价


我想从url指向的json文件中提取数据,并在名为TextView的UI中更改TextView。我不知道如何在AsyncTask中访问findviewbyid。我在整个internet上都搜索过,但找不到任何内容:(非常感谢您的建议!!

请尝试弱引用以在asynctask中获取textview

//调用异步任务

//[(START)File:ThirdActivity.java] -->
package com.example.caleb.splash_screen;

import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.io.IOException;
import java.io.OutputStream;


public class ThirdActivity extends AppCompatActivity {
  //public String  text = "https://jsonparsingdemo-cec5b.firebaseapp.com/jsonData/moviesDemoItem.txt";


    public TextView text;

    private void writeStream(OutputStream out){
        String output = "Hello world";

       // out.write(output.getBytes());
        //out.flush();
    }


    /*private String readStream(InputStream is) {
        try {`enter code here`
            ByteArrayOutputStream bo = new ByteArrayOutputStream();
            int i = is.read();
            while(i != -1) {
                bo.write(i);
                i = is.read();
            }
            return bo.toString();
        } catch (IOException e) {
            return "";
        }
    }*/

    //[(START) readStream -->
    private String readStream(InputStream in) throws IOException {
    BufferedReader bin = new BufferedReader(new InputStreamReader(in));
    //temporary
        try {
            StringBuilder sb = new StringBuilder();
            String inputLine;
            while ((inputLine = bin.readLine()) != null) {
                sb.append(inputLine);
            }
            return sb.toString();


        } finally {

        }
    }
    //[(END) readStream -->


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

        text = (TextView)findViewById(R.id.textView);

        new JSONTask().execute("https://jsonparsingdemo-cec5b.firebaseapp.com/jsonData/moviesDemoItem.txt");

    }

}
//[(END)File:ThirdActivity] -->







//[(START)File:JSONTask] -->

package com.example.caleb.splash_screen;

import android.app.Activity;
import android.content.Context;
import android.os.AsyncTask;
import android.support.v4.widget.TextViewCompat;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.widget.TextView;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

/**
 * Created by Caleb on 12/17/2017.
 */

public class JSONTask extends AsyncTask<String,String,String> {


//final TextView txt = (TextView)findViewById(R.id.textView);
    private Context context;

    public JSONTask(Activity ThirdActivity) {
        context = ThirdActivity;
    }

@Override
    protected String doInBackground(String... params) {
        BufferedReader reader = null;
        HttpURLConnection urlConnection = null;
        //{(START)] Working Connection:ALERT! Error within code will cause crash -->
        try {
            URL url = new URL(params[0]);
            Log.w("testing", "test");
            urlConnection = (HttpURLConnection) url.openConnection();
            urlConnection.setRequestMethod("GET");
            urlConnection.setDoOutput(false);
            urlConnection.connect();
            //urlConnection.setChunkedStreamingMode(0);
            //OutputStream out = new BufferedOutputStream(urlConnection.getOutputStream());
            //writeStream(out);
            /*int a = urlConnection.getResponseCode();
            String b = String.valueOf(a);
            Log.e(b, "yesssssssssssssssss");*/

            InputStream in = urlConnection.getInputStream();
            //InputStream in = new BufferedInputStream(urlConnection.getInputStream());
            reader = new BufferedReader(new InputStreamReader(in));
            StringBuffer buffer = new StringBuffer();
            String line = "";
            while ((line = reader.readLine()) != null) {
                buffer.append(line);
            }
            /*String data = readStream(in);
            /*final TextView textView = (TextView) findViewById(R.id.textView);
            textView.setText("hello");
            */

            return buffer.toString();

        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            throw new RuntimeException(e);

        } finally {
            if (urlConnection != null) {
                urlConnection.disconnect();
            }
            try {
                if (reader != null) {
                    reader.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        //{(END)] Working Connection -->
        return null;
    }

    @Override
    protected void onPostExecute(String result) {
        super.onPostExecute(result);
        TextView text = (TextView) ((AppCompatActivity) context).findViewById(R.id.textView);
        text.setText(result);

    }

}
//[(END)File:JSONTask] -->
//在异步任务中

new JSONTask(yourTextView).execute();
private final WeakReference textViewReference;
公共JSONTask(TextView TextView){
textViewReference=新的WeakReference(textView);
}
@凌驾
受保护的void onPostExecute(){
TextView TextView=textViewReference.get();
//将值设置为文本视图
}
我正在使用
  private final WeakReference<TextView> textViewReference;

    public JSONTask (TextView textView){
         textViewReference = new WeakReference<TextView>( textView);
    }


    @Override
    protected void onPostExecute() {


            TextView textView = textViewReference.get();
            //set values to text view

    }
implementation 'com.squareup.okhttp3:okhttp:3.9.1'
class OkHttpHandler extends AsyncTask<String, String, String> {

        OkHttpClient client = new OkHttpClient();
        private volatile String data;

        public String getResult() {
            return data;
        }

        @Override
        protected String doInBackground(String... params) {

            try {
                Request.Builder builder = new Request.Builder();
                builder.url(params[0]);
                Request request = builder.build();

                Response response = client.newCall(request).execute();
                return response.body().string();
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            data = s;
        }
    }
}
String str = new OkHttpHandler().execute("http://www.<TEST>.com/json").get();