Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将字符串从AsyncTask返回到另一个活动_Java_Android_Android Asynctask - Fatal编程技术网

Java 如何将字符串从AsyncTask返回到另一个活动

Java 如何将字符串从AsyncTask返回到另一个活动,java,android,android-asynctask,Java,Android,Android Asynctask,我已经创建了一个类并使用AsyncTask进行扩展,现在我想返回一个字符串给另一个抛出该类的活动。它从mysql数据库获取jsonstring enter code here public class GetJson extends AsyncTask<Void,Void,String> { String JSON_STRING; String json_url; public String pasString; Activity ab; @Override protect

我已经创建了一个类并使用AsyncTask进行扩展,现在我想返回一个字符串给另一个抛出该类的活动。它从mysql数据库获取jsonstring

enter code here  

public class GetJson  extends AsyncTask<Void,Void,String> {
String  JSON_STRING;
String json_url;
public String pasString;
Activity ab;
@Override
protected void onPreExecute() {
    json_url="https://XXXXXXX.000webhostapp.com/Json_getData_Survey.php";
}

public GetJson(Activity b) {
    ab=b;
}

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

    try {
        URL url =new URL(json_url);
        HttpURLConnection httpURLConnection =(HttpURLConnection)  url.openConnection();
        InputStream inputStream  =httpURLConnection.getInputStream();
        BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(inputStream));
        StringBuilder stringBuilder=new StringBuilder();

        while ((JSON_STRING=bufferedReader.readLine())!=null)
        {

            stringBuilder.append(JSON_STRING+"\n");
        }


        bufferedReader.close();
        inputStream.close();
        httpURLConnection.disconnect();

        String  strings =stringBuilder.toString().trim();
        return  strings;

    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    return null;
}

@Override
protected void onProgressUpdate(Void... values) {
    super.onProgressUpdate(values);
}

@Override
protected void onPostExecute(String result) {

    pasString=result;

   // Toast.makeText(ab,pasString,Toast.LENGTH_LONG).show();
   // json_string1=result;
}
在此处输入代码
公共类GetJson扩展异步任务{
字符串JSON_字符串;
字符串json_url;
公共字符串pasString;
活性ab;
@凌驾
受保护的void onPreExecute(){
json_url=”https://XXXXXXX.000webhostapp.com/Json_getData_Survey.php";
}
公共GetJson(活动b){
ab=b;
}
@凌驾
受保护字符串doInBackground(无效…参数){
试一试{
URL=新URL(json_URL);
HttpURLConnection HttpURLConnection=(HttpURLConnection)url.openConnection();
InputStream InputStream=httpURLConnection.getInputStream();
BufferedReader BufferedReader=新的BufferedReader(新的InputStreamReader(inputStream));
StringBuilder StringBuilder=新的StringBuilder();
而((JSON_STRING=bufferedReader.readLine())!=null)
{
追加(JSON_字符串+“\n”);
}
bufferedReader.close();
inputStream.close();
httpURLConnection.disconnect();
String strings=stringBuilder.toString().trim();
返回字符串;
}捕获(格式错误){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
返回null;
}
@凌驾
受保护的void onProgressUpdate(void…值){
super.onProgressUpdate(值);
}
@凌驾
受保护的void onPostExecute(字符串结果){
pasString=结果;
//Toast.makeText(ab,pasString,Toast.LENGTH_LONG).show();
//json_string1=结果;
}
}

我只需要将string1返回给我的另一个活动,我在GetJson类中创建了另一个方法来返回这个字符串,但是当我显示这个字符串时,它没有显示任何内容。请帮助

尝试使用“活动结果”。您可以在一个活动上设置返回值,并在该活动终止时获取该值

尝试使用“活动结果”。您可以在一个活动上设置返回值,并在该活动终止时获取该值

这很简单 创建一个接口类,如下所示

public interface ResponseListener() {
      void onResponseReceive(String data);
}
并在GetJson类中添加该类的实例,如下所示

public class GetJson  extends AsyncTask<Void,Void,String> {
String  JSON_STRING;
String json_url;
public String pasString;
Activity ab;

// this is new code
ResponseListener listener;
public void setOnResponseListener(ResponseListener listener) {
    this.listener = listener;
}

@Override
protected void onPreExecute() {
    json_url="https://XXXXXXX.000webhostapp.com/Json_getData_Survey.php";
}

// now add this code in onPost function

@Override
protected void onPostExecute(String result) {

   pasString=result;
   listener.onResponseReceive(pasString);

  // Toast.makeText(ab,pasString,Toast.LENGTH_LONG).show();
  // json_string1=result;
}
希望您能理解。:)

这很简单 创建一个接口类,如下所示

public interface ResponseListener() {
      void onResponseReceive(String data);
}
并在GetJson类中添加该类的实例,如下所示

public class GetJson  extends AsyncTask<Void,Void,String> {
String  JSON_STRING;
String json_url;
public String pasString;
Activity ab;

// this is new code
ResponseListener listener;
public void setOnResponseListener(ResponseListener listener) {
    this.listener = listener;
}

@Override
protected void onPreExecute() {
    json_url="https://XXXXXXX.000webhostapp.com/Json_getData_Survey.php";
}

// now add this code in onPost function

@Override
protected void onPostExecute(String result) {

   pasString=result;
   listener.onResponseReceive(pasString);

  // Toast.makeText(ab,pasString,Toast.LENGTH_LONG).show();
  // json_string1=result;
}

希望您能理解。:)

如果您可以发布更多的代码,而不仅仅是AsyncTask,这可能会有所帮助。请看一看,如果您可以发布更多的代码,而不仅仅是AsyncTask,这可能会有帮助。看一下,我知道如何将值从一个活动传递到另一个活动,但这里的问题是在j class.java中,它不是活动,我想传递一些东西给activity@Abubakar你为什么不给它一个回调或者类似的东西呢?另外,您可以使用我知道如何将值从一个活动传递到另一个活动来获得AsyncTask的结果,但这里的问题是在j class.java中,它不是活动,我想传递一些东西给activity@Abubakar你为什么不给它一个回调或者类似的东西呢?此外,您还可以使用