facebook twitter hatena line email

「Android/画面遷移/メニューボタンから画面遷移」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(intentに直接引数を追加)
行6: 行6:
 
  <<nowiki />activity android:name="SubActivity"></activity>
 
  <<nowiki />activity android:name="SubActivity"></activity>
  
==AndroidHelloworld.javaを編集==
+
==MainActivity.javaを編集==
  package com.example.AndroidHelloworld;
+
  package com.example.androidHelloworld;
 
  import android.app.Activity;
 
  import android.app.Activity;
 
  import android.os.Bundle;
 
  import android.os.Bundle;
行14: 行14:
 
  import android.view.MenuItem;
 
  import android.view.MenuItem;
 
   
 
   
  public class AndroidHelloworld extends Activity {
+
  public class MainActivity extends Activity {
 
     /** メニューID  */
 
     /** メニューID  */
 
     private final int MENU_ID1 = Menu.FIRST;
 
     private final int MENU_ID1 = Menu.FIRST;
行59: 行59:
 
             Intent intent = new Intent();
 
             Intent intent = new Intent();
 
             // intent.setClassName(
 
             // intent.setClassName(
             //        "com.example.AndroidHelloworld",
+
             //        "com.example.androidHelloworld.MainActivity",
             //        "com.example.AndroidHelloworld.SubActivity");
+
             //        "com.example.androidHelloworld.SubActivity");
 
             intent.setClassName(getPackageName(), getPackageName() + ".SubActivity");
 
             intent.setClassName(getPackageName(), getPackageName() + ".SubActivity");
 
             startActivity(intent);
 
             startActivity(intent);

2016年12月12日 (月) 14:42時点における版

以下ファイルを作成する

SubActivity.java
sub.xml

AndroidManifest.xmlに以下を追加

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

MainActivity.javaを編集

package com.example.androidHelloworld;
import android.app.Activity;
import android.os.Bundle;
import android.content.Intent;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends Activity {
    /** メニューID  */
    private final int MENU_ID1 = Menu.FIRST;
    private final int MENU_ID2 = Menu.FIRST + 1;
    
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
    /**
     * メニューを作成する
     */
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        super.onCreateOptionsMenu(menu);
        menu.add(0,
                MENU_ID1,
                0,
                getString(R.string.menu_next)).setIcon(android.R.drawable.ic_menu_crop);
        menu.add(0,
                MENU_ID2,
                1,
                getString(R.string.menu_finish)).setIcon(android.R.drawable.ic_menu_close_clear_cancel);
        return true;
    }
   /**
     * メニューボタン押下時の処理
     */
    @Override
    public boolean onPrepareOptionsMenu(Menu menu) {
        super.onPrepareOptionsMenu(menu);
        return true;
    }
    /**
     * メニューを選択時の処理
     */
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case MENU_ID1:
            // 次の画面に遷移させる
            Intent intent = new Intent();
            // intent.setClassName(
            //         "com.example.androidHelloworld.MainActivity",
            //         "com.example.androidHelloworld.SubActivity");
            intent.setClassName(getPackageName(), getPackageName() + ".SubActivity");
            startActivity(intent);
            return true;
        case MENU_ID2:
            // Activity終了
            finish();
            return true;
        default:
            break;
        }
        return super.onOptionsItemSelected(item);
    }
}

参考

http://www.techfirm.co.jp/lab/android/transition.html

intentに直接引数を追加して遷移させる方法(このような方法でも遷移できる)

Intent intent = new Intent(MainActivity.this, SubActivity.class);
startActivity(intent);