gpt4 book ai didi

android - 从 AsyncTask 静态调用 startActivity

转载 作者:太空宇宙 更新时间:2023-11-03 12:08:32 25 4
gpt4 key购买 nike

我已经实现了一个 4 睫毛的 FragmentPagerAdapter,并且在每个睫毛中我加载了一个具有不同 View 的 fragment 。在其中一个中,按下图像会执行 AsyncTask 以从服务器获取一系列数据,并通过 onPostExecute() 方法上的 Intent 加载新类。

我在一项 Activity 中使用了此功能并且运行良好。现在要从 fragment ​​中进行调用,我必须使用此类的静态模式进行调用,并且在代码行“startActivity(i)”中出现错误:

  //AsyncTask 
private static class CargarJSON extends AsyncTask<String, Void, String> {
Context mContext;
public CargarJSON(Context context) {
mContext = context;
}

@Override
protected void onPreExecute() {
super.onPreExecute();
mProgressItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
mProgressItem.setVisible(true);
mProgressItem.setActionView(R.layout.actionbar_indeterminate_progress);
mProgressItem.expandActionView();
}

@Override
protected String doInBackground(String... params) {
String url = params[0];
String data = MetodosJSON.getHttpResponse(url);
MetodosJSON.parseaJSON2(data, IniSelCategoria.ac);
return params[1];
}

@Override
protected void onPostExecute(String titulo) {
super.onPostExecute(titulo);
// start new activity
Intent i = new Intent(mContext, PantallaInfo.class);
i.putExtra("title", titulo);
i.putExtra("URLser", urlSer);
**startActivity(i);**
mProgressItem.setVisible(false);
}

}

错误是:

Cannot make a static reference to the non-static method startActivity(Intent) from the type Activity

如何使方法调用“startActivity(i)”?

非常感谢。

最佳答案

改成

mContext.startActivity(i);

如果不是从 Activity 调用,则需要使用 context 来调用该方法。幸运的是,您已经将 Context 传递给构造函数。

关于android - 从 AsyncTask 静态调用 startActivity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19122171/

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