android l02 - activities and adapters

41
Cloud Interaction Design Android

Upload: mohammad-shaker

Post on 13-Apr-2017

400 views

Category:

Software


2 download

TRANSCRIPT

Page 1: Android L02 - Activities and Adapters

CloudInteraction Design

Android

Page 2: Android L02 - Activities and Adapters

ListAdapter / StringAdapter

Page 3: Android L02 - Activities and Adapters

ListAdapter / StringAdapterMapping Model to UI (MVVM-like-ish)

Page 4: Android L02 - Activities and Adapters
Page 5: Android L02 - Activities and Adapters
Page 6: Android L02 - Activities and Adapters
Page 7: Android L02 - Activities and Adapters
Page 8: Android L02 - Activities and Adapters

Custom Lists

Page 9: Android L02 - Activities and Adapters

Custom Lists

Page 10: Android L02 - Activities and Adapters

Custom Lists

Page 11: Android L02 - Activities and Adapters

Custom Lists

Page 12: Android L02 - Activities and Adapters
Page 13: Android L02 - Activities and Adapters
Page 14: Android L02 - Activities and Adapters
Page 15: Android L02 - Activities and Adapters
Page 16: Android L02 - Activities and Adapters
Page 17: Android L02 - Activities and Adapters

ActivitiesStarting Another Activity

Page 18: Android L02 - Activities and Adapters

Intentan object that provides runtime binding between

separate components (such as two activities)

Page 19: Android L02 - Activities and Adapters

Intentcarry a collection of various data types as

key-value pairs called extras through putExtra()

Page 20: Android L02 - Activities and Adapters

It’s a good practice..to define keys for intent extras using your app's package

name as a prefix. This ensures they are unique, in case your app interacts with other apps.

Page 21: Android L02 - Activities and Adapters

AndroidManifest.xml<application

android:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme"  ><activity

android:name=".MainActivity"android:label="@string/title_activity_main"  ><intent-­‐filter>

<action  android:name="android.intent.action.MAIN"  />

<category  android:name="android.intent.category.LAUNCHER"  /></intent-­‐filter>

</activity><activity

android:name=".DisplayMessageActivity"android:label="@string/title_activity_display_message"  ><meta-­‐data

android:name="android.support.PARENT_ACTIVITY"android:value="com.example.intetsample.MainActivity"  />

</activity></application>

Page 22: Android L02 - Activities and Adapters

Starting Another Activity

• In the first activity:public void onClickLaunchSecondActivity(View view) {

Intent intent = new Intent(this, SecondActivity.class);EditText editText = (EditText) findViewById(R.id.editTxtMsg);String message = editText.getText().toString();intent.putExtra("MainActivityMsg", message);startActivity(intent);

}

• In the second activity:@Overridepublic void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);setContentView(R.layout.second_activity);

((TextView)findViewById(R.id.txtviewMsgList)).setText(this.getIntent().getExtras().getString("MainActivityMsg"));

}

Page 23: Android L02 - Activities and Adapters

Starting Another Activity

• In the first activity:public void onClickLaunchSecondActivity(View view) {

Intent intent = new Intent(this, SecondActivity.class);EditText editText = (EditText) findViewById(R.id.editTxtMsg);String message = editText.getText().toString();intent.putExtra("MainActivityMsg", message);startActivity(intent);

}

• In the second activity:@Overridepublic void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);setContentView(R.layout.second_activity);

((TextView)findViewById(R.id.txtviewMsgList)).setText(this.getIntent().getExtras().getString("MainActivityMsg"));

}

Page 24: Android L02 - Activities and Adapters

What we did is callingExplicit Intents

Intent(this, SecondActivity.class)

Page 25: Android L02 - Activities and Adapters

So what isImplicit Intents?

Page 26: Android L02 - Activities and Adapters

Implicit Intents

public class ImplicitIntentActivity extends ActionBarActivity {

@Overrideprotected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);setContentView(R.layout.activity_implicit_intent);

final ImageView image = (ImageView)findViewById(R.id.imageView);image.setImageURI((Uri)getIntent().getExtras().get(Intent.EXTRA_STREAM));

}}

Page 27: Android L02 - Activities and Adapters
Page 28: Android L02 - Activities and Adapters
Page 29: Android L02 - Activities and Adapters
Page 30: Android L02 - Activities and Adapters
Page 31: Android L02 - Activities and Adapters
Page 32: Android L02 - Activities and Adapters

Activity

Life Cycle

Page 33: Android L02 - Activities and Adapters

Activity Life Cyclehttp://developer.android.com/reference/android/app/Activity.html

Page 34: Android L02 - Activities and Adapters
Page 35: Android L02 - Activities and Adapters

onPasue()

@Overridepublic  void  onPause()  {

//  Always  call  the  superclass  method  firstsuper.onPause();    

//  Release  the  Camera  because  //  we  don't  need  it  when  paused//  and  other  activities  might  need  to  use  it.if  (mCamera !=  null)  {

mCamera.release()mCamera =  null;

}}

Page 36: Android L02 - Activities and Adapters

onResume()

@Overridepublic  void  onResume()  {

//  Always  call  the  superclass  method  firstsuper.onResume();    

//  Get  the  Camera  instance  as  the  activity//  achieves  full  user  focusif  (mCamera ==  null)  {

//  Local  method  to  handle  camera  initinitializeCamera();  

}}

Page 37: Android L02 - Activities and Adapters

Recreating activityonSaveInstanceState

Page 38: Android L02 - Activities and Adapters

Permissions

Page 39: Android L02 - Activities and Adapters

Permissions

Page 40: Android L02 - Activities and Adapters

Permissions

Page 41: Android L02 - Activities and Adapters

Permissions