java - 如何从异步任务中的 JSON 查询返回多个字符串?

标签 java android json android-asynctask

我目前正在处理一个小组项目,我们正在尝试从 asynctask 中的 JSON 查询中获取字符串值,以便通过 intents 将它们发送到第二个 Activity 。我们遇到的麻烦是当字符串从 asynctask 中取出时,它变为 null。如何解决?

public class connectTask extends AsyncTask<String,String,TCPClient> {

    String FilmId, Name, Certificate, Duration, Director, Description, ReleaseDate, Cast; 
    @Override
    protected TCPClient doInBackground(String... message) {

        //we create a TCPClient object and
        mTcpClient = new TCPClient(new TCPClient.OnMessageReceived() {
            @Override
            //here the messageReceived method is implemented
            public void messageReceived(String message) {
                //this method calls the onProgressUpdate


                Log.e("TCP Client", message);




                try 
                {
                    JSONObject json = new JSONObject(message);
                    FilmId = (String) json.get("FilmId");
                    Name = (String) json.get("Name");
                    Certificate = (String) json.get("Certificate");
                    Duration =(String) json.get("Duration");
                    Director = (String) json.get("Director");
                    Description = (String) json.get("Description");
                    ReleaseDate = (String) json.get("ReleaseDate");
                    Cast = (String) json.get("Cast");
                    Log.e("FilmId: ", FilmId);
                    Log.e("Name: ", Name);
                    Log.e("Cert: ", Certificate);
                    Log.e("Duration: ", Duration);
                    Log.e("Director: ", Director);
                    Log.e("Description: ", Description);
                    Log.e("ReleaseDate: ", ReleaseDate);
                    Log.e("Cast: ", Cast);



                } 
                catch (JSONException e)
                {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }



            }
        });


        mTcpClient.run("GTF 02");
        System.out.println(JSON[1]);    



        return null;
       }
    protected void onPostExecute()
    {
    JSON[0] = FilmId;
    JSON[1] = Name;



    }
}


public void mLoadFilmInfo(View view) 
{

    //FilmID = "GTF "+ ButtonName;
    new connectTask().execute();

    Intent FilmInfo = new Intent(this, FilmInfo.class);
    FilmInfo.putExtra("NamePass", JSON[1]);



    startActivity(FilmInfo);

 }

这是异步任务和传递给第二个 Activity 的代码。

非常感谢任何帮助。

最佳答案

AsyncTask 与您的代码并行运行。它不会在执行完成后立即完成。您在 execute() 下的所有代码都需要在您的 onPostExecute 中。

关于java - 如何从异步任务中的 JSON 查询返回多个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22306511/

相关文章:

java - EditText 始终返回 Null - Java NullPointerException

Android:如何在编辑文本中设置密码属性?

c# - Json.NET - 将 JSON 转换为 XML 并删除 XML 版本、编码?

c# - 使用 JObject 创建作为对象数组的对象的语法是什么?

java - 给出错误 "EXception in thread "main"java.util.InputMistmatchException... .", I can' t 找到错误。请解释一下

java - 如何在 Java 7 中获得操作系统的外观?

java - Android c2dm 未知权限

javascript - SyntaxError : JSON. 解析:AJAX 调用中的意外字符错误

java - Intellij IDEA : How to fix Abnormal build process termination?

Java : How to get type of List<?>