在void之间传递值

时间:2014-01-18 19:08:11

标签: android

这是Service.java。我想将builderonStart添加到onCreate以制作吐司 请帮帮我

public void onStart(Intent intent, int startid) {
    super.onStart(intent, startid);
    Bundle b=intent.getExtras();
    name = b.getStringArray("name");
    builder = new StringBuilder();
    for(String i : name)
    {
         builder.append(i);

     }

}

public void onCreate() {

    Toast.makeText(this, builder, Toast.LENGTH_LONG).show();
}

4 个答案:

答案 0 :(得分:2)

首先,您需要使用StringBuilder对象的字符串值:

public void onCreate() {

    Toast.makeText(this, builder.toString(), Toast.LENGTH_LONG).show();
}

其次,但最重要的是android活动生命周期:

enter image description here

onStart之后调用

onCreate,因此无法在onCreate内显示在onStart函数中检索的数据。在创建stringBuilder之后,将吐司放在onStart中。

答案 1 :(得分:1)

你缺少.toString()

Toast.makeText(this, builder.toString(), Toast.LENGTH_LONG).show();

StringBuilder本身不是String。

onCreate在onStart()中仍然看不到构建器的值,因为它稍后创建

答案 2 :(得分:1)

如果我理解你的问题(你想使用StringBuilderonCreate的内容):

onCreate在生命周期的onStart之前,您的构建器将在nullonCreate

只需在Toast中显示onStart(构建字符串后)或将所有代码移至onCreate

答案 3 :(得分:1)

在onCreate中创建构建器,然后制作toast并使用builder.tostring