如何获取 MainActivity.java 类文件之外的任何小部件的 ID



我想从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 
    }
}

访问此处了解更多详情

最新更新