Created
January 27, 2015 06:58
-
-
Save hilda8519/a4805e7de609267309ef to your computer and use it in GitHub Desktop.
Programming-Mobile-Applications-for-Android-Handheld-Systems week2 AcitivityTwo
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package course.labs.activitylab; | |
import android.app.Activity; | |
import android.os.Bundle; | |
import android.util.Log; | |
import android.view.View; | |
import android.view.View.OnClickListener; | |
import android.widget.Button; | |
import android.widget.TextView; | |
public class ActivityTwo extends Activity { | |
// Use these as keys when you're saving state between reconfigurations | |
private static final String RESTART_KEY = "restart"; | |
private static final String RESUME_KEY = "resume"; | |
private static final String START_KEY = "start"; | |
private static final String CREATE_KEY = "create"; | |
// String for LogCat documentation | |
private final static String TAG = "Lab-ActivityTwo"; | |
// Lifecycle counters | |
// TODO: | |
// Create variables named | |
// mCreate, mRestart, mStart and mResume | |
// to count calls to onCreate(), onRestart(), onStart() and | |
// onResume(). These variables should not be defined as static. | |
int mCreate; | |
int mStart; | |
int mResume; | |
int mRestart; | |
// You will need to increment these variables' values when their | |
// corresponding lifecycle methods get called. | |
TextView mTvCreate; | |
TextView mTvStart; | |
TextView mTvResume; | |
TextView mTvRestart; | |
// TODO: Create variables for each of the TextViews | |
// named mTvCreate, mTvRestart, mTvStart, mTvResume. | |
// for displaying the current count of each counter variable | |
@Override | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.activity_two); | |
// TODO: Assign the appropriate TextViews to the TextView variables | |
// Hint: Access the TextView by calling Activity's findViewById() | |
// textView1 = (TextView) findViewById(R.id.textView1); | |
mTvCreate = (TextView) findViewById(R.id.create); | |
mTvStart = (TextView) findViewById(R.id.start); | |
mTvResume = (TextView) findViewById(R.id.resume); | |
mTvRestart = (TextView) findViewById(R.id.restart); | |
Button closeButton = (Button) findViewById(R.id.bClose); | |
closeButton.setOnClickListener(new OnClickListener() { | |
@Override | |
public void onClick(View v) { | |
// TODO: | |
// This function closes Activity Two | |
// Hint: use Context's finish() method | |
finish(); | |
} | |
}); | |
// Has previous state been saved? | |
if (savedInstanceState != null) { | |
// TODO: | |
// Restore value of counters from saved state | |
// Only need 4 lines of code, one for every count variable | |
mCreate = savedInstanceState.getInt(RESTART_KEY); | |
mStart = savedInstanceState.getInt(RESUME_KEY); | |
mResume = savedInstanceState.getInt(START_KEY); | |
mRestart = savedInstanceState.getInt(CREATE_KEY); | |
} | |
// Emit LogCat message | |
Log.i(TAG, "Entered the onCreate() method"); | |
// TODO: | |
// Update the appropriate count variable | |
mCreate++; | |
// Update the user interface via the displayCounts() method | |
displayCounts(); | |
} | |
// Lifecycle callback methods overrides | |
@Override | |
public void onStart() { | |
super.onStart(); | |
// Emit LogCat message | |
Log.i(TAG, "Entered the onStart() method"); | |
// TODO: | |
// Update the appropriate count variable | |
mStart++; | |
// Update the user interface | |
displayCounts(); | |
} | |
@Override | |
public void onResume() { | |
super.onResume(); | |
// Emit LogCat message | |
Log.i(TAG, "Entered the onResume() method"); | |
// TODO: | |
// Update the appropriate count variable | |
mResume++; | |
// Update the user interface | |
displayCounts(); | |
} | |
@Override | |
public void onPause() { | |
super.onPause(); | |
// Emit LogCat message | |
Log.i(TAG, "Entered the onPause() method"); | |
} | |
@Override | |
public void onStop() { | |
super.onStop(); | |
// Emit LogCat message | |
Log.i(TAG, "Entered the onStop() method"); | |
} | |
@Override | |
public void onRestart() { | |
super.onRestart(); | |
// Emit LogCat message | |
Log.i(TAG, "Entered the onRestart() method"); | |
// TODO: | |
// Update the appropriate count variable | |
mRestart++; | |
// Update the user interface | |
displayCounts(); | |
} | |
@Override | |
public void onDestroy() { | |
super.onDestroy(); | |
// Emit LogCat message | |
Log.i(TAG, "Entered the onDestroy() method"); | |
} | |
@Override | |
public void onSaveInstanceState(Bundle savedInstanceState) { | |
// TODO: | |
// Save counter state information with a collection of key-value pairs | |
// 4 lines of code, one for every count variable | |
savedInstanceState.putInt(RESTART_KEY, mCreate); | |
savedInstanceState.putInt(RESUME_KEY, mStart); | |
savedInstanceState.putInt(START_KEY, mResume); | |
savedInstanceState.putInt(CREATE_KEY, mRestart); | |
super.onSaveInstanceState(savedInstanceState); | |
} | |
// Updates the displayed counters | |
// This method expects that the counters and TextView variables use the | |
// names | |
// specified above | |
public void displayCounts() { | |
mTvCreate.setText("onCreate() calls: " + mCreate); | |
mTvStart.setText("onStart() calls: " + mStart); | |
mTvResume.setText("onResume() calls: " + mResume); | |
mTvRestart.setText("onRestart() calls: " + mRestart); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment