2014-01-18 60 views
0

這是Service.java。我想把builderonStartonCreate做烤麪包。
請幫我無效的通過值

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(); 
} 

回答

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

你缺少的ToString()

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

一個StringBuilder不是字符串本身。

onCreate仍然無法看到構建器的值,因爲它是在onStart()後面創建的

+0

建設者在「空隙在onStart」。但在「無效的onCreate」工作是不是 – Amir

1

如果我明白你的問題正確(您想使用的StringBuilder的內容onCreate):

onCreate是在生命週期onStart之前,你的建設者將在onCreatenull

只需在onStart(在創建字符串之後)顯示Toast或將所有代碼移動到onCreate即可。

+0

我如何可以移動到的OnCreate? – Amir

1

中的onCreate創建建設者,然後讓麪包和使用builder.tostring