这是Service.java
。我想将builder
从onStart
添加到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();
}
答案 0 :(得分:2)
首先,您需要使用StringBuilder对象的字符串值:
public void onCreate() {
Toast.makeText(this, builder.toString(), Toast.LENGTH_LONG).show();
}
其次,但最重要的是android活动生命周期:
在
onStart
之后调用 onCreate
,因此无法在onCreate内显示在onStart函数中检索的数据。在创建stringBuilder之后,将吐司放在onStart中。
答案 1 :(得分:1)
你缺少.toString()
Toast.makeText(this, builder.toString(), Toast.LENGTH_LONG).show();
StringBuilder本身不是String。
onCreate在onStart()中仍然看不到构建器的值,因为它稍后创建。
答案 2 :(得分:1)
如果我理解你的问题(你想使用StringBuilder
中onCreate
的内容):
onCreate
在生命周期的onStart
之前,您的构建器将在null
中onCreate
。
只需在Toast
中显示onStart
(构建字符串后)或将所有代码移至onCreate
。
答案 3 :(得分:1)
在onCreate中创建构建器,然后制作toast并使用builder.tostring