当前位置: 首页 > 知识库问答 >
问题:

无法使用TextView

能正青
2023-03-14

我正在写一份GCM申请。我无法将收到的邮件设置为文本视图。

检查以下代码:

public class GcmMessageHandler extends IntentService {

    String mes;
    private Handler handler;

    public GcmMessageHandler() {
        super("GcmMessageHandler");
    }

    @Override
    public void onCreate() {
        super.onCreate();
        handler = new Handler();
    }

    @Override
    public void onHandleIntent(Intent intent) {
        Bundle extras = intent.getExtras();

        GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(this);
        String messageType = gcm.getMessageType(intent);
        mes = extras.getString("title");
        showMsg();
        Log.i("GCM", "Received : (" +messageType+") "+extras.getString("title"));
        GcmBroadcastReceiver.completeWakefulIntent(intent);
    }

    public void showMsg(){
        handler.post(new Runnable() {
            public void run() {

                TextView textview = (TextView)findViewById(R.id.getMsg);
                textview.setText(mes );
            }
         });
    }
}

(错误msg: findViewById(int)方法未定义为new Runnable(){})

共有2个答案

宫俊才
2023-03-14

您的textview位于服务类中,textview必须位于活动类中。如果要在“活动”中设置数据,请创建接口或使textview成为公共静态。

梅耘豪
2023-03-14

您要做的是在布局中获取TextViewR.id.getMsg的引用。您在不提供此方法的IntentService类中使用findViewById方法。请参阅Android文档

通常在生命周期方法(如onCreate或onCreateView等)中的活动或片段中执行此操作,其中视图作为参数值给定。类似于以下代码行:

TextView textview = (TextView)view.findViewById(R.id.getMsg);

检索到TextView引用后,您就可以在实现的方法中使用它。

您需要一种方法来将来自Intent服务的数据处理回您的应用程序/活动等。一种可能的解决方案是将检索到的消息数据从IntentService传递回您可以使用BroadcastReceiver的活动(如下所示)

 类似资料:
  • 我刚刚开始使用Spring,我正在尝试使用@NotBlank。问题是它不起作用。pom.xml我有以下依赖项: 这是我的进口: 我也得到了这个错误: 我搜索了类似的问题,答案是,通过添加此依赖项并重新启动IDE将起作用。就我而言,它仍然不起作用。有什么建议吗?

  • 当我尝试此代码时 我收到这条信息: 警告:无法修改标头信息-标头已由/home/httpd/vhosts/your-click.ch/httpdocs/wp-includes/formatting.php:4179中的/home/httpd/vhost/your-click.ch/httpdocs/wp-includess/pluggable发送。第925行的php警告:无法修改标头信息-标头已由

  • 我正在做一个项目,我试图加载一个图像,以便将其用作纹理,但当我尝试包含stb_image时遇到了一个问题。 我把< code>stb_image.h放在< code > src/vendor/STB _ image/中,用 在文件中,并将文件放在<code>src/vendor/stb_image/</code>目录中。当我尝试包含<code>#include“vendor/stb_image/s

  • 看来我无法导入这个包:github。com/golang/protobuf/proto 当我尝试构建或使用go-get时,我得到:无法加载github。com/golang/protobuf/proto:github模块。com/golang/protobuf@latest(v1.3.2)找到,但不包含包github。com/golang/protobuf/proto 这是一个受欢迎的软件包,我很

  • 我基本上使用了install命令“$pip install Flask”,当我试图运行一个程序时,它会说“找不到模块”Flask安装在“/usr/local/lib/python2.7/site包”中,但我认为pip的意义在于,我可以到处导入这些包。我试图在我的桌面上运行一个文件,甚至当我将Flask文件夹移动到桌面上时,它也不起作用。有什么建议吗?谢谢

  • 我正在尝试使相机应用程序存储输出到我的内部存储。我还知道第三方应用程序不能访问我的应用程序的内部存储,但我们可以通过公开内部目录来做到这一点。我在这里遵循了指南: 相机意图不保存照片 https://developer.android.com/reference/android/support/v4/content/fileprovider.html 当我运行应用程序时,我可以得到以下Logcat