падение процесса Android на ADB с простым приложением, не уверен, что я делаю неправильно - PullRequest
0 голосов
/ 11 мая 2011
package com.russell.saw;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class learnandroid extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

   Button landroid_button = (Button) findViewById(R.id.landroid_button); {

       landroid_button.setOnClickListener(
               new View.OnClickListener() {

                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    setContentView(R.layout.button);

                }
            });

   }
   Button back_button = (Button) findViewById(R.id.back_button); {

       back_button.setOnClickListener(
               new View.OnClickListener() {

                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    setContentView(R.layout.main);

                }
            });

   }
    }
}

Я не уверен в том, что происходит не так, это просто простое приложение для обучения, с двумя кнопками, переходящими с одной страницы на другую, но у меня происходит сбой, как только я запускаю его на телефоне.

Ответы [ 3 ]

0 голосов
/ 11 мая 2011

Если вы не добавили тег активности в AndroidManifest.xml, вам нужно будет сделать это:

<activity android:name="learnandroid" android:label="I am learning Android"></activity>

Это необходимо сделать для каждого действия (под тегом приложения).

0 голосов
/ 11 мая 2011

Хотя я сомневаюсь, что это вызывает сбой, ваш код имеет серьезную проблему. Когда вы вызываете setContentView внутри onClick в ваших слушателях, кнопки landroid_button и back_button больше не действуют. То есть это объекты, которые больше не привязаны к окну. (Если у новых представлений контента есть «одинаковые» кнопки, у них больше нет слушателей.)

0 голосов
/ 11 мая 2011

Ого!У вас ваши onClickListeners настроены все неправильно.Вы звоните setContentView в onClickListeners.Вместо этого вам нужно использовать намерение перейти от одного занятия к другому.Он должен выглядеть следующим образом:

myButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            Intent intent = new Intent(Main.this, MyOtherActivity.class);
            startActivity(intent);

        }
    });

Кроме того, не используйте landroid_button для ссылки на вашу кнопку: это всего лишь XML-идентификатор ресурса.Вместо этого вам нужно схватить вашу кнопку, выполнив что-то вроде этого:

   Button myLandroidButton = (Button)findViewById(R.id.landroid_button) 

Затем, когда вы настраиваете onClickListener, используйте эту переменную: myLandroidButton like myLandroidButton.setOnClickListener и т. Д.

...