Я пытаюсь открыть один экран с другого в приложении для Android. Я скопировал схему следующего кода из учебника в Интернете, а затем попытался заменить свои собственные экраны. Когда я пытаюсь запустить следующий код, я получаю «Принудительное закрытие», когда нажимаю кнопку на первом экране (второй экран никогда не отображается). Может кто-нибудь сказать мне, что я делаю неправильно? Есть четыре файла: ScreenTestActivity.java, main.xml, screen2.java и screen2.xml.

ScreenTestActivity.java

package com.birdscreen.android.testscreen;

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

public class ScreenTestActivity extends Activity
{
   public void onCreate(Bundle icicle)
   {
      super.onCreate(icicle);
      setContentView(R.layout.main);
      Button b = (Button) findViewById(R.id.btnClick);
      b.setOnClickListener(new View.OnClickListener() {
         public void onClick(View arg0) {
         Intent i = new Intent(ScreenTestActivity.this, screen2.class);
         startActivity(i);
         } 
      });
   }
}

Main.xml:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
>
<TextView
   android:layout_width="fill_parent" 
   android:layout_height="wrap_content"
   android:text="You are in the first Screen"
/>
<Button 
   android:id ="@+id/btnClick"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="Open New Screen"
/>
</LinearLayout>

Screen2.java:

package com.birdscreen.android.testscreen;

    import android.app.Activity;
    import android.os.Bundle;

    public class screen2 extends Activity {
        public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.screen2);
        }
    }

Screen2.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
>
<TextView
   android:layout_width="fill_parent" 
   android:layout_height="wrap_content"
   android:text="You are in the New Screen"
/>
</LinearLayout>
0
Franklin Haas 17 Дек 2011 в 22:28
1
Я не вижу проблем в вашем коде, вы зарегистрировали свою вторую активность в файле манифеста?
 – 
vitakot
17 Дек 2011 в 22:46

1 ответ

       <activity android:name="screen2"></activity>

       <activity android:name="ScreenTestActivity"></activity>

Поместите эти 2 строки кода в файл androidmanifest.xml

0
Harsh Dev Chandel 17 Дек 2011 в 23:29