One important step in Android development is to understand how to deal with many activities.
This is what we are going to see in this Activity tutorial with an example of the famous Intent class.
Stop talking, let's get coded.
In the video you can see, in orange, the MainActivity and, in green, the Activity_2.
The title also changes with the corresponding activity.
To go to the second activity, I push the Button "GO TO ACTIVITY 2".
To come back to MainActivity, when I'm at Activity_2, I simply use the Android back button of my mobile phone.
The first activity stays with data, paused during the travel to the second activity.
And don't forget to specify the new activiy in your manifest.
// Badprog.com package com.badprog.android.tutorial.badprogactivity; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.view.WindowManager; import android.widget.Button; import android.widget.TextView; public class MainActivity extends AppCompatActivity { TextView textView_1; BadprogHelper bh = new BadprogHelper(); private int TIMER_VALUE = 500; final private int METHOD_NAME = 2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layout_1); getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); textView_1 = (TextView) findViewById(R.id.xml_textview_1); setTitle("BadproG.com - MainActivity"); final StackTraceElement[] ste = Thread.currentThread().getStackTrace(); bh.formatText(this, textView_1, ste[METHOD_NAME].getMethodName()); Button button_1 = (Button) findViewById(R.id.xml_button_1); button_1.setText("Go to Activity 2"); button_1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(MainActivity.this, Activity_2.class); startActivity(intent); } }); } @Override protected void onStart() { super.onStart(); final StackTraceElement[] ste = Thread.currentThread().getStackTrace(); bh.formatText(this, textView_1, ste[METHOD_NAME].getMethodName()); } @Override protected void onResume() { super.onResume(); final StackTraceElement[] ste = Thread.currentThread().getStackTrace(); bh.formatText(this, textView_1, ste[METHOD_NAME].getMethodName()); } @Override protected void onPause() { super.onPause(); final StackTraceElement[] ste = Thread.currentThread().getStackTrace(); bh.formatText(this, textView_1, ste[METHOD_NAME].getMethodName()); } @Override protected void onStop() { super.onStop(); final StackTraceElement[] ste = Thread.currentThread().getStackTrace(); bh.formatText(this, textView_1, ste[METHOD_NAME].getMethodName()); } @Override protected void onRestart() { super.onRestart(); final StackTraceElement[] ste = Thread.currentThread().getStackTrace(); bh.formatText(this, textView_1, ste[METHOD_NAME].getMethodName()); } @Override protected void onDestroy() { super.onDestroy(); final StackTraceElement[] ste = Thread.currentThread().getStackTrace(); bh.formatText(this, textView_1, ste[METHOD_NAME].getMethodName()); } } // end class MainActivity
// Badprog.com package com.badprog.android.tutorial.badprogactivity; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.WindowManager; import android.widget.TextView; public class Activity_2 extends AppCompatActivity { TextView _textView_2; BadprogHelper bh = new BadprogHelper(); private int TIMER_VALUE = 500; final private int METHOD_NAME = 2; protected void onCreate(Bundle saveInstanceState) { super.onCreate(saveInstanceState); setContentView(R.layout.layout_2); getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); _textView_2 = (TextView) findViewById(R.id.xml_textview_2); this.setTitle("BadproG.com - Activity_2"); final StackTraceElement[] ste = Thread.currentThread().getStackTrace(); bh.formatText(this, _textView_2, ste[METHOD_NAME].getMethodName()); } @Override protected void onStart() { super.onStart(); final StackTraceElement[] ste = Thread.currentThread().getStackTrace(); bh.formatText(this, _textView_2, ste[METHOD_NAME].getMethodName()); } @Override protected void onResume() { super.onResume(); final StackTraceElement[] ste = Thread.currentThread().getStackTrace(); bh.formatText(this, _textView_2, ste[METHOD_NAME].getMethodName()); } @Override protected void onPause() { super.onPause(); final StackTraceElement[] ste = Thread.currentThread().getStackTrace(); bh.formatText(this, _textView_2, ste[METHOD_NAME].getMethodName()); } @Override protected void onStop() { super.onStop(); final StackTraceElement[] ste = Thread.currentThread().getStackTrace(); bh.formatText(this, _textView_2, ste[METHOD_NAME].getMethodName()); } @Override protected void onRestart() { super.onRestart(); final StackTraceElement[] ste = Thread.currentThread().getStackTrace(); bh.formatText(this, _textView_2, ste[METHOD_NAME].getMethodName()); } @Override protected void onDestroy() { super.onDestroy(); final StackTraceElement[] ste = Thread.currentThread().getStackTrace(); bh.formatText(this, _textView_2, ste[METHOD_NAME].getMethodName()); } }
// Badprog.com package com.badprog.android.tutorial.badprogactivity; import android.support.v7.app.AppCompatActivity; import android.widget.TextView; public class BadprogHelper { private TextView textView_1; private int number = 0; /** * Manages a timer each time the method is called. * * @param aca * @param textView_0 * @param charSequence */ public void formatText(final AppCompatActivity aca, TextView textView_0, final CharSequence charSequence) { textView_1 = textView_0; textView_1.append( aca.getClass().getSimpleName() + " - " + ++number + " - " + charSequence + "\n"); } } // end of BadprogHelper
<?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.badprog.android.tutorial.badprogactivity.MainActivity" android:scrollbars="vertical" > <TextView android:id="@+id/xml_textview_1" android:layout_height="wrap_content" android:layout_width="match_parent" android:scrollbars="vertical" android:textColor="@color/colorWhite" android:background="@drawable/background_1" android:padding="10dp" /> <Button android:id="@+id/xml_button_1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/xml_textview_1" /> </RelativeLayout> </ScrollView>
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.badprog.android.tutorial.badprogactivity.MainActivity"> <TextView android:id="@+id/xml_textview_2" android:layout_height="wrap_content" android:layout_width="match_parent" android:scrollbars="vertical" android:textColor="@color/colorWhite" android:background="@drawable/background_2" android:padding="10dp" /> </RelativeLayout>
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.badprog.android.tutorial.badprogactivity"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> <activity android:name=".Activity_2"> </activity> </application> </manifest>
No one can't stop you now with activity life cycle!
Well done, once again you did it!
Add new comment