我想从MySQL数据库中获取信息并将其显示在ListView中 为此,我在名为"BackgroundWorker.java"的单独类中编写代码。我正在从数据库中获取所有内容,但我不知道如何在"BackgroundWorker"类中获取布局文件的 TextView 小部件的 id 以显示结果。
主活动.java代码
new BackgroundWorker(this).execute()
后台工作者.java代码
protected void onPostExecute(String result) {
//here i want to get id of layout widget to display result
}
对于这种类型的问题,Android 提供了WeakReference
,如果你可以操作这个类,你可以得到对任何你想要的引用
private static class SampleTask extends AsyncTask<Integer, Integer, String>{
private WeakReference<MainActivity> activityReference;
MainActivity activity;
SampleTask(MainActivity context)
{
activityReference = new WeakReference<>(context);
}
//....
@Override
protected void onPostExecute(String s)
{
super.onPostExecute(s);
activity = activityReference.get();
if (activity == null || activity.isFinishing())
{
return;
}
//Now you have the activity you can access your fields including
}
}
访问此处了解更多详情