Просмотр журнала ошибок, а еще лучше просмотр сеанса отладки - видно, что в строке 22 есть исключение нулевого указателя:
tv.setText("Hello "+nameStr);
Это потому, что tv == null,Он должен был быть инициализирован строкой:
TextView tv = (TextView) findViewById(R.id.HelloTV);
, но для использования идентификатора в макете вы всегда должны зарегистрировать представление в текущем действии.Эта строка должна была быть включена ранее в метод onCreate:
setContentView(R.layout.main);
Вот рабочий класс Helloworld:
public class HelloWorld extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
/*
* Fetch and display passed string.
*/
TextView tv = (TextView) findViewById(R.id.HelloTV);
Bundle extras = this.getIntent().getExtras();
if (extras != null) {
String nameStr;
if (extras.get("Username") != null) {
nameStr = extras.get("Username").toString();
tv.setText("Hello "+nameStr);
}
}
}
}
Этот класс Helloworld правильно извлекает имя пользователя из дополнительных данных, отправленных приначинается действие и отображается личное приветствие.
Я нашел ответ благодаря Константину Бурову и предыдущему вопросу здесь