2013年12月18日

Intent画面遷移

Intent画面遷移

Activityへの画面遷移(がめんせんい)にフォーカスを当ててソースを記載してみました。

ボタンがあって画面が切り替われば、よりアプリらしくなってきます。

また他のInten機能については記事:Intentとは を参考にして下さい。

よく忘れがちなものとしてAndroidManifest.xmlに

画面遷移先のAcitivityを登録することがあります。

そのへんも記載します。

画面遷移 Main画面
画面遷移 遷移先A
MainActivity.java
public class MainActivity extends Activity implements OnClickListener{
private Intent intent;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
setContentView(R.layout.activity_main);

if(intent != null){
String str = intent.getStringExtra("key");
TextView textview = (TextView)findViewById(R.id.textView1);
textview.setText(str);
}

Button _button_main= (Button)findViewById(R.id.button_main);
_button_main.setOnClickListener(this);
Button _button_a = (Button)findViewById(R.id.button_a);
_button_a.setOnClickListener(this);  
Button _button_b = (Button)findViewById(R.id.button_b);
_button_b.setOnClickListener(this); 
Button _button_c = (Button)findViewById(R.id.button_c);
_button_c.setOnClickListener(this);  

}


@Override
public void onClick(View arg0) {
// TODO 自動生成されたメソッド・スタブ
switch(arg0.getId()){
case R.id.button_main:
//   intent = new Intent();
//          intent.setClass(MainActivity.this,SubActivity.class);
//          intent.putExtra("key", "現在のActivity:A");//putExtra(key,送信したいtext)
//          // 元々のアクティビティを破棄するなら
//          finish(); 
break;

case R.id.button_a:   
intent = new Intent();
intent.setClass(this,Activity_a.class);
intent.putExtra("key", "現在のActivity:A");//putExtra(key,送信したいtext)
//元々のアクティビティを破棄するなら
finish(); 
break;

case R.id.button_b:
intent = new Intent();
intent.setClass(this,Activity_b.class);
intent.putExtra("key", "現在のActivity:B");//putExtra(key,送信したいtext)
//元々のアクティビティを破棄するなら
finish();   
break;

case R.id.button_c:
intent = new Intent();
intent.setClass(this,Activity_c.class);
intent.putExtra("key", "現在のActivity:C");//putExtra(key,送信したいtext)
//元々のアクティビティを破棄するなら
finish();  
break;

}
if (intent != null){
startActivityForResult(intent, 0);//開始
}
}
}


Activity_a.java
public class Activity_a extends Activity implements OnClickListener{
private Intent intent;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
setContentView(R.layout.activity_main);
intent = getIntent();
if(intent != null){
String str = intent.getStringExtra("key");
TextView textview = (TextView)findViewById(R.id.textView1);
textview.setText(str);
}
Button _button_main= (Button)findViewById(R.id.button_main);
_button_main.setOnClickListener(this);
Button _button_a = (Button)findViewById(R.id.button_a);
_button_a.setOnClickListener(this);  
Button _button_b = (Button)findViewById(R.id.button_b);
_button_b.setOnClickListener(this); 
Button _button_c = (Button)findViewById(R.id.button_c);
_button_c.setOnClickListener(this);  

}


@Override
public void onClick(View arg0) {
// TODO 自動生成されたメソッド・スタブ
switch(arg0.getId()){
case R.id.button_main:
intent = new Intent();
intent.setClass(this,MainActivity.class);
intent.putExtra("key", "現在のActivity:main");//putExtra(key,送信したいtext)
//元々のアクティビティを破棄するなら
finish(); 
break;

case R.id.button_a:   
//   intent = new Intent();
//            intent.setClass(this,Activity_a.class);
//            intent.putExtra("key", "現在のActivity:A");//putExtra(key,送信したいtext)
//            //元々のアクティビティを破棄するなら
//            finish(); 
break;

case R.id.button_b:
intent = new Intent();
intent.setClass(this,Activity_b.class);
intent.putExtra("key", "現在のActivity:B");//putExtra(key,送信したいtext)
//元々のアクティビティを破棄するなら
finish();   
break;

case R.id.button_c:
intent = new Intent();
intent.setClass(this,Activity_c.class);
intent.putExtra("key", "現在のActivity:C");//putExtra(key,送信したいtext)
//元々のアクティビティを破棄するなら
finish();    
break;
}
if (intent != null){
startActivityForResult(intent, 0);//開始
}
}
}


Activity_b.java
public class Activity_b extends Activity implements OnClickListener{
private Intent intent;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
setContentView(R.layout.activity_main);
intent = getIntent();
if(intent != null){
String str = intent.getStringExtra("key");
TextView textview = (TextView)findViewById(R.id.textView1);
textview.setText(str);
}
Button _button_main= (Button)findViewById(R.id.button_main);
_button_main.setOnClickListener(this);
Button _button_a = (Button)findViewById(R.id.button_a);
_button_a.setOnClickListener(this);  
Button _button_b = (Button)findViewById(R.id.button_b);
_button_b.setOnClickListener(this); 
Button _button_c = (Button)findViewById(R.id.button_c);
_button_c.setOnClickListener(this);  

}


@Override
public void onClick(View arg0) {
// TODO 自動生成されたメソッド・スタブ
switch(arg0.getId()){
case R.id.button_main:
intent = new Intent();
intent.setClass(this,MainActivity.class);
intent.putExtra("key", "現在のActivity:main");//putExtra(key,送信したいtext)
//元々のアクティビティを破棄するなら
finish(); 
break;

case R.id.button_a:   
intent = new Intent();
intent.setClass(this,Activity_a.class);
intent.putExtra("key", "現在のActivity:A");//putExtra(key,送信したいtext)
//元々のアクティビティを破棄するなら
finish(); 
break;

case R.id.button_b:
//   intent = new Intent();
//            intent.setClass(this,Activity_b.class);
//            intent.putExtra("key", "現在のActivity:B");//putExtra(key,送信したいtext)
//            //元々のアクティビティを破棄するなら
//            finish();   
break;

case R.id.button_c:
intent = new Intent();
intent.setClass(this,Activity_c.class);
intent.putExtra("key", "現在のActivity:C");//putExtra(key,送信したいtext)
//元々のアクティビティを破棄するなら
finish();    
break;
}
if (intent != null){
startActivityForResult(intent, 0);//開始
}
}
}


Activity_c.java
public class Activity_c extends Activity implements OnClickListener{
private Intent intent;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
setContentView(R.layout.activity_main);
intent = getIntent();
if(intent != null){
String str = intent.getStringExtra("key");
TextView textview = (TextView)findViewById(R.id.textView1);
textview.setText(str);
}
Button _button_main= (Button)findViewById(R.id.button_main);
_button_main.setOnClickListener(this);
Button _button_a = (Button)findViewById(R.id.button_a);
_button_a.setOnClickListener(this);  
Button _button_b = (Button)findViewById(R.id.button_b);
_button_b.setOnClickListener(this); 
Button _button_c = (Button)findViewById(R.id.button_c);
_button_c.setOnClickListener(this);  

}


@Override
public void onClick(View arg0) {
// TODO 自動生成されたメソッド・スタブ
switch(arg0.getId()){
case R.id.button_main:
intent = new Intent();
intent.setClass(this,MainActivity.class);
intent.putExtra("key", "現在のActivity:main");//putExtra(key,送信したいtext)
//元々のアクティビティを破棄するなら
finish(); 
break;

case R.id.button_a:   
intent = new Intent();
intent.setClass(this,Activity_a.class);
intent.putExtra("key", "現在のActivity:A");//putExtra(key,送信したいtext)
//元々のアクティビティを破棄するなら
finish(); 
break;

case R.id.button_b:
intent = new Intent();
intent.setClass(this,Activity_b.class);
intent.putExtra("key", "現在のActivity:B");//putExtra(key,送信したいtext)
//元々のアクティビティを破棄するなら
finish();   
break;

case R.id.button_c:
//   intent = new Intent();
//            intent.setClass(this,Activity_c.class);
//            intent.putExtra("key", "現在のActivity:C");//putExtra(key,送信したいtext)
//            //元々のアクティビティを破棄するなら
//            finish();    
break;
}
if (intent != null){
startActivityForResult(intent, 0);//開始
}
}
}



res/layout/activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="現在のActivity:main"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <Button
        android:id="@+id/button_main"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Activity_Main" />

    <Button
        android:id="@+id/button_a"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Activity_A" />

    <Button
        android:id="@+id/button_b"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Activity_B" />
   
    <Button
        android:id="@+id/button_c"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Activity_C" />
</LinearLayout>



res/AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="sample.helloworld"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="sample.helloworld.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
       
<!--         画面遷移でActivityを追加する場合は必ずマニフェストにも追加 -->
        <activity android:name=".Activity_a"></activity>
        <activity android:name=".Activity_b"></activity>
        <activity android:name=".Activity_c"></activity>
     
    </application>

</manifest>

0 件のコメント:

コメントを投稿