Кнопка обратного вызова в Android не работает - PullRequest
1 голос
/ 06 сентября 2011

Я довольно новичок в Android и пытаюсь запрограммировать какое-то очень простое приложение с помощью кнопки и обратного вызова для нового намерения (в основном, нового окна).

Это код:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    //Onclick "Start Game" button
    start = (Button) findViewById(R.id.startGame);
    tv =  (TextView) findViewById(R.id.textView1);
    start.setOnClickListener(new Button.OnClickListener(){
        @Override
        public void onClick(View v) {
            tv.setText("clicked");
            Intent i = new Intent(MainActivity.this, Level1Activity.class);
            startActivity(i);
        }
    });
[...]

Как видите, у меня есть кнопка (startGame) и textView (textView1).Моя проблема заключается в том, что когда я нажимаю кнопку startGame, ничего не происходит (ни TextView не меняется на «нажал», ни меняется экран).Кнопка, а также TextView настроены правильно, так как Eclipse не жалуется, но, тем не менее, это не работает.

Вот фрагмент кода XML представления:

<Button android:id="@+id/startGame" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Start Game"></Button>
<TextView android:text="change" android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>

Я считаю, что моя проблема действительно глупая, и я просто не вижу ее.

Спасибо

РЕДАКТИРОВАТЬ:

Я обнаружил, что проблема была связана с тем, что яиметь более одной кнопки в представлении, таким образом, более одного обратного вызова (на разных кнопках, конечно).Как только я прокомментировал другие обратные вызовы, кнопка startGame начала работать как положено.

Ответы [ 3 ]

1 голос
/ 06 сентября 2011

Вы должны добавить в свой файл манифеста один тег, и он будет работать нормально.И тег ->

  1. активность android: name = "Level1Activity"

не забудьте добавить этот тег в тег приложения вашего файла манифеста, остальное ваш код в порядке.Попробуй это определенно сработает.

0 голосов
/ 06 сентября 2011

Вы уверены, что ваш манифест правильный? Иначе это сработает наверняка ...

start.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                Intent i = new Intent(view.getContext(), Level1Activity.class);
                startActivityForResult(i, 0);
            }
        });
0 голосов
/ 06 сентября 2011

попробуйте это и скажите, что произойдет.

   start.setOnClickListener(new OnClickListener(){
        @Override
        public void onClick(View v) {
            tv.setText("clicked");
            Intent i = new Intent(MainActivity.this, Level1Activity.class);
            startActivity(i);
        }
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...