2014-01-18 4 views
0

Это Service.java. Я хочу поставить builder от onStart до onCreate для тостов.
пожалуйста, помогите мнеЗначение в процентах от void

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

Во-вторых, но наиболее важным является андроида деятельность жизненного цикла:

enter image description here

onStart называется после onCreate, поэтому невозможно отобразить данные, полученные в функции onStart, внутри onCreate. Просто поставьте тост внутри onStart, после создания stringBuilder.

1

У вас не хватает .ToString()

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

StringBuilder не сама строка.

onCreate все еще не может видеть значение строителя, так как создано позже, in onStart().

+0

строитель работает в «пустом OnStart» .Но в «пустом OnCreate» не – Amir

1

Если я понял ваш вопрос правильно (вы хотите использовать содержимое StringBuilder в onCreate):

onCreate находится перед onStart в жизненном цикле, ваш строитель будет null в onCreate.

Просто покажите Toast в onStart (после создания вашей строки) или переместите весь свой код на onCreate.

+0

Как я могу перейти к OnCreate? – Amir

1

Создание строитель в OnCreate, а затем сделать тост и использовать builder.tostring

Смежные вопросы