gpt4 book ai didi

java - 如何将变量从 AsyncTask 返回到 Activity 中的 OnCreate()

转载 作者:行者123 更新时间:2023-12-01 18:12:49 26 4
gpt4 key购买 nike

问题/错误:

我正在努力将变量从 doInBackground 方法传递到我的 OnCreate() 中。老实说,我不敢相信我有这么多问题。

目标:

将一个字符串从 doInBackground 中的 AsyncTask 方法传递给 OnCreate,我想将一个字符串传递给 Textview。并使用字符串设置TextView。

我的理解:

我已经厌倦了在 doInBackground 和 AsyncTask 方法中创建简单的方法并在 onCreate() 中调用它。但是该变量始终为空。我相信我错过了理解 onCreate() 的一个方面。

主要 Activity : - 我想在 textView 中设置变量“ValueNeeded”

public class OutboxActivity extends ListActivity {
….


public void onCreate(Bundle savedInstanceState) {
….

//AsyncTask method
new LoadOutbox().execute();

textView = (TextView) findViewById(R.id.textView6);
textView.setText("ValueNeeded);

Log.d("response", "TOUR NAME: " + ValueNeeded) );

…….

AsyncTask - 包含 doInBackground

 class LoadOutbox extends AsyncTask<String, String, String> 
{

/**
* Before starting background thread Show Progress Dialog
* */
@Override
protected void onPreExecute() {
super.onPreExecute();
….
}

doInBackground - String ValueNeeded 是我需要传递给 onCreate() 的变量

   protected String doInBackground(String... args) 
{
..CODE THAT GETS VALUE IS IN HERE...

//ValueNeeded Is
ValueNeeded = c.getString(TAG_TOUR);


} catch (JSONException e) {
e.printStackTrace();
}

return null;
}

最佳答案

您必须在onPostExecute中执行此操作,而不是在doInBackground中执行。只需放入 onPostExecute textView.setText("ValueNeeded);

你的问题不是“理解 onCreate() 的一个方面”,而是“理解 AsyncTask 的一个方面”

关于java - 如何将变量从 AsyncTask 返回到 Activity 中的 OnCreate(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31711182/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com