繁体   English   中英

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

[英]How can i get ID of any widget outside the MainActivity.java class file?

我想从 MySQL 数据库中获取信息并将其显示在 ListView 中,为此我在名为“BackgroundWorker.java”的单独类中编写代码。 我从数据库中获取所有内容,但我不知道如何在“BackgroundWorker”类中获取布局文件的 TextView 小部件的 id 以显示结果。

MainActivity.java 代码

new BackgroundWorker(this).execute()

BackgroundWorker.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 

    }
}

访问这里了解更多详细信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM