Android findViewById-无法解析方法

Android findViewById-无法解析方法,android,view,android-asynctask,Android,View,Android Asynctask,我是android编程新手。这是我的第一个应用程序。我试图了解使用异步任务的最佳实践或方法 场景-我需要通过HTTP获取数据并将其显示在应用程序主屏幕上 main类-在屏幕上绘制一些基本内容并调用Async类。 Async类-从strings.xml获取数据,通过http发送数据,检索内容并将处理后的内容存储为Enum。N 我的问题-现在,当我尝试在异步类方法中从activity.xml获取表时,它说无法解析方法findviewbyd 这样做对吗?请提供帮助。您不能在后台运行UI操作。您应该在o

我是android编程新手。这是我的第一个应用程序。我试图了解使用异步任务的最佳实践或方法

场景-我需要通过HTTP获取数据并将其显示在应用程序主屏幕上

main类-在屏幕上绘制一些基本内容并调用Async类。 Async类-从strings.xml获取数据,通过http发送数据,检索内容并将处理后的内容存储为Enum。N

我的问题-现在,当我尝试在异步类方法中从activity.xml获取表时,它说无法解析方法findviewbyd


这样做对吗?请提供帮助。

您不能在后台运行UI操作。您应该在
onPreExecute
onPostExecute
onProgressUpdate
中运行它们,如下所示

    @Override
    protected void onProgressUpdate (String... result)
    {
        ((TextView) findViewById(R.id.textViewRSSI2)).setText(result[0]);
    }
更新:在
AsyncTask
中设置了三种类型:

private class DownloadWebpageTask extends AsyncTask<String, String, String> {
上面代码中的结果[0]将是yourstring

对于
onPostExecute
,您应该
在doInBackground中返回一个值:

    @Override
    protected String doInBackground(String... urls) {
    return yourstring }

您应该发布活动和异步类中的代码,这将帮助我们更快地找到问题的解决方案

我只是猜测您写了什么,但似乎您正在尝试访问Async类中的findViewById方法,这无法完成,因为findViewById是活动类中的一个方法,因此它在Async中不存在

您应该回调活动上的UI线程以更新它


要做到这一点,您应该对异步类的
postExecute
方法进行任何更改,记住
doInBackground
方法中的任何操作都是在不同的线程中完成的。只有这样,您才能应用所需的更改。

您的类扩展了什么?视图,以及扩展它的类有问题的方法谢谢,我会尝试扩展视图…我喜欢这个网站,你被否决了,但没有人解释为什么。如何让结果枚举到onPostExecute或onProgressUpdate来填充表?有什么建议吗?问题是,我有一个枚举作为处理结果。这不能从扩展异步类的类传递回Activity。您可以发布一些代码吗?您是否在活动类中声明了异步类?您是否试图在doInBackground方法中进行更改?
    @Override
    protected String doInBackground(String... urls) {
    return yourstring }