0
I am trying to learn screen navigation in android

私は次のように達成しようとしています

  • アクティビティのボタンをクリックすると、新しいアクティビティが起動します
  • ただし、クリック時に最初のアクティビティを返す必要がある場合、その終了アクティビティには戻るボタンが含まれている必要があります

以下の説明的なコードをいくつか投稿してください

CopperchimneyDesc.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.copperchimney_desc_screen);


Button PHOTOBUTTON=(Button) findViewById(R.id.CopperChimneyPhotosButton);
            PHOTOBUTTON.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    Intent pht=new Intent(CopperChimneyDesc.this,CopperChimneyPhotos.class);
                    startActivity(pht); 
                }
            });

CopperChimneyPhotos.java

public class CopperChimneyPhotos extends Activity{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);

        setContentView(R.layout.copper_chimney_photos);


        Button btn=(Button) findViewById(R.id.PhotoButton);

        btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent pt=new Intent(CopperChimneyPhotos.this,CopperChimneyDesc.class);
                startActivity(pt);
            }
        });
    }

PS:: マニフェストで新しいアクティビティを宣言しました

私のエラーログは次のとおりです::

08-16 17:42:33.730: E/AndroidRuntime(444): FATAL EXCEPTION: main
08-16 17:42:33.730: E/AndroidRuntime(444): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.project.findmybuffet/com.project.findmybuffet.CopperChimneyDesc}: java.lang.NullPointerException
08-16 17:42:33.730: E/AndroidRuntime(444):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
08-16 17:42:33.730: E/AndroidRuntime(444):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
08-16 17:42:33.730: E/AndroidRuntime(444):  at android.app.ActivityThread.access$1500(ActivityThread.java:117)
08-16 17:42:33.730: E/AndroidRuntime(444):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
08-16 17:42:33.730: E/AndroidRuntime(444):  at android.os.Handler.dispatchMessage(Handler.java:99)
08-16 17:42:33.730: E/AndroidRuntime(444):  at android.os.Looper.loop(Looper.java:123)
08-16 17:42:33.730: E/AndroidRuntime(444):  at android.app.ActivityThread.main(ActivityThread.java:3683)
08-16 17:42:33.730: E/AndroidRuntime(444):  at java.lang.reflect.Method.invokeNative(Native Method)
08-16 17:42:33.730: E/AndroidRuntime(444):  at java.lang.reflect.Method.invoke(Method.java:507)
08-16 17:42:33.730: E/AndroidRuntime(444):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
08-16 17:42:33.730: E/AndroidRuntime(444):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
08-16 17:42:33.730: E/AndroidRuntime(444):  at dalvik.system.NativeStart.main(Native Method)
08-16 17:42:33.730: E/AndroidRuntime(444): Caused by: java.lang.NullPointerException
08-16 17:42:33.730: E/AndroidRuntime(444):  at com.project.findmybuffet.CopperChimneyDesc.onCreate(CopperChimneyDesc.java:39)
08-16 17:42:33.730: E/AndroidRuntime(444):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
08-16 17:42:33.730: E/AndroidRuntime(444):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
08-16 17:42:33.730: E/AndroidRuntime(444):  ... 11 more

これを克服する方法についてのアイデアは、関連コードを貼り付けました。

4

4 に答える 4

1

あなたはfinish()メソッドを呼び出すだけです..

btn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            finish();
        }
    });

あなたの2番目の活動で

于 2013-08-16T12:44:15.687 に答える
0

次のようにしてみてください: onclick メソッドを呼び出します:

finish();
System.gc();

アクティビティを終了し、前のアクティビティに戻る

于 2013-08-16T13:09:13.760 に答える
0

次のようなことを試してください:

Intent goToMainScreen = new Intent("com.dereaper.goalsmanager.MAINSCREEN");
startActivity(goToMainScreen);
finish(); 

次のアクティビティに移動した後にアクティビティを終了する場合にのみ、finish を呼び出します。

于 2013-08-16T12:42:55.417 に答える
-1

CopperChimneyDesc.class に問題があるはずです。onCreate 関数を確認してください。特に39行目。nullpointerがあります

戻り関数:

@Override
public void onClick(View v) {
   if(v == PHOTOBUTTON){
       // TODO Auto-generated method stub
       Intent pht=new Intent(CopperChimneyDesc.this,CopperChimneyPhotos.class);
       startActivity(pht); 
   }
   if(v == OTHERBUTTON){
       finish();
   }
}
于 2013-08-16T12:47:21.217 に答える