溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

玩轉(zhuǎn)Android之Activity詳細(xì)剖析

發(fā)布時(shí)間:2020-08-14 00:21:35 來(lái)源:網(wǎng)絡(luò) 閱讀:1387 作者:林炳文 欄目:移動(dòng)開(kāi)發(fā)

 

     本文主講了什么是Activity,它的生命周期,不對(duì)的操作,調(diào)用了什么函數(shù)。以及不同的Activity之間的跳轉(zhuǎn)、數(shù)據(jù)傳遞等。

     Activity 是用戶接口程序,原則上它會(huì)提供給用戶一個(gè)交互式的接口功能。它是 android 應(yīng)用程序的基本功能單元。Activity 本身是沒(méi)有界面的。所以activity類(lèi)創(chuàng)建了一個(gè)窗口,開(kāi)發(fā)人員可以通過(guò)setContentView(View)接口把UI放到activity創(chuàng)建的窗口上,當(dāng)activity指向全屏窗口時(shí),也可以用其他方式實(shí)現(xiàn):作為漂浮窗口(通過(guò)windowIsFloating的主題集合),或者嵌入到其他的activity(使用ActivityGroup)。activity是單獨(dú)的,用于處理用戶操作。幾乎所有的activity都要和用戶打交道。

一、Activity的生命周期簡(jiǎn)介

1、操縱生命周期的七種方法:

玩轉(zhuǎn)Android之Activity詳細(xì)剖析

 

2、Activity的運(yùn)作流程

  • 一般啟動(dòng)Activity:onCreate -> onStart -> onResume

  • 呼叫另一個(gè)Activity: onPause -> onCreate -> onStart -> onResume -> onStop

  • 還原Activity: onPause -> onRestart -> onStart -> onResume -> onStop -> onDestroy

  • 退出Activity: onPause -> onStop -> onDestroy

  • 回收再啟動(dòng)Activity: onCreate -> onStart –> onResume

3、Activity生命周期的四種基本狀態(tài):

(1)Active/Runing:一個(gè)新 Activity 啟動(dòng)入棧后,它在屏幕最前端,處于棧的最頂端,此時(shí)它處于可見(jiàn)并可和用戶交互的激活狀態(tài)。

(2)Paused:當(dāng) Activity 被另一個(gè)透明或者 Dialog 樣式的 Activity 覆蓋時(shí)的狀態(tài)。此時(shí)它依然與窗口管理器保持連接,系統(tǒng)繼續(xù)維護(hù)其內(nèi)部狀態(tài),所以它仍然可見(jiàn),但它已經(jīng)失去了焦點(diǎn)故不可與用戶交互。

(3)Stoped。當(dāng) Activity 被另外一個(gè) Activity 覆蓋、失去焦點(diǎn)并不可見(jiàn)時(shí)處于 Stoped狀態(tài)。

(4)Killed Activity。被系統(tǒng)殺死回收或者沒(méi)有被啟動(dòng)時(shí)處于 Killed狀態(tài)。

 

玩轉(zhuǎn)Android之Activity詳細(xì)剖析

二、Activity生命周期代碼范例

   1: /**
   2:  *Activity生命周期學(xué)習(xí)
   3:  *@author 林炳文(博客 )
   4:  *@time 2015.3.19
   5:  */
   6: package com.example.activitylearning;
   7: import android.os.Bundle;
   8: import android.app.Activity;
   9: import android.util.Log;
  10: public class MainActivity extends Activity {
  11:     private static final String TAG="AvtivityTest";
  12:     @Override
  13:     protected void onCreate(Bundle savedInstanceState) {
  14:         super.onCreate(savedInstanceState);
  15:         Log.d(TAG, "onCreate() called");
  16:         setContentView(R.layout.activity_main);
  17:     }
  18:     @Override
  19:     protected void onStart(){
  20:         super.onStart();
  21:         Log.d(TAG, "onStart() called");
  22:
  23:     }
  24:     @Override
  25:     protected void onResume(){
  26:         super.onResume();
  27:         Log.d(TAG,"onResume() called");
  28:
  29:     }
  30:     @Override
  31:     protected void onPause(){
  32:         super.onPause();
  33:          Log.d(TAG, "onPause() called");
  34:
  35:     }
  36:     @Override
  37:     protected void onStop(){
  38:         super.onStop();
  39:          Log.d(TAG, "onStop() called");
  40:
  41:     }
  42:     protected void onDestroy(){
  43:         super.onDestroy();
  44:          Log.d(TAG, "onDestroy() called");
  45:
  46:     }
  47:
  48:
  49: }

 

1、程序啟動(dòng)

  • 一般啟動(dòng)Activity:onCreate -> onStart -> onResume

玩轉(zhuǎn)Android之Activity詳細(xì)剖析

 

2、程序啟動(dòng)后按下后退鍵

  • 退出Activity: onPause -> onStop -> onDestroy

玩轉(zhuǎn)Android之Activity詳細(xì)剖析

可以看到,程序已退出了。

3、程序啟動(dòng)后按下主屏幕鍵

  • 還原Activity: onPause -> onRestart -> onStart -> onResume -> onStop -> onDestroy

玩轉(zhuǎn)Android之Activity詳細(xì)剖析

再打開(kāi)程序:

 

玩轉(zhuǎn)Android之Activity詳細(xì)剖析

 

三、多個(gè)Activity管理

1、Android 是通過(guò)一種 Activity 棧的方式來(lái)管理 Activity 的,一個(gè) Activity 的實(shí)例的狀態(tài)決定它在棧中的位置。

2、處于前臺(tái)的 Activity 總是在棧的頂端,當(dāng)前臺(tái)的 Activity 因?yàn)楫惓;蚱渌虮讳N(xiāo)毀時(shí),處于棧第二層的 Activity 將被激活,上浮到棧頂。

3、當(dāng)新的 Activity 啟動(dòng)入棧時(shí),原 Activity 會(huì)被壓入到棧的第二層。一個(gè) Activity 在棧中的位置變化反映了它在不同狀態(tài)間的轉(zhuǎn)換

玩轉(zhuǎn)Android之Activity詳細(xì)剖析

注意:

在Android系統(tǒng)中,要使用Activity必須在AndroidManifest.xml文件中進(jìn)行配置。

在<application…/>元素中添加<activity…/>子元素即可

配置Activity通常指定如下三個(gè)屬性:

–name:指定該Activity的實(shí)現(xiàn)類(lèi)。

–icon:指定該Activity對(duì)應(yīng)的圖標(biāo)。

–label:指定該Activity的標(biāo)簽。


四、由一個(gè)Activity啟動(dòng)另一個(gè)Activity(不帶數(shù)據(jù)傳遞)

1、布局

activity_1.xml(放在layout)

   1: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   2:     xmlns:tools="http://schemas.android.com/tools"
   3:     android:layout_width="match_parent"
   4:     android:layout_height="match_parent"
   5:     tools:context=".Activity1" >
   6: <Button
   7:     android:id="@+id/id_button1"
   8:     android:layout_width="match_parent"
   9:     android:layout_height="wrap_content"
  10:     android:text="啟動(dòng)Activity2"
  11:     />
  12: </RelativeLayout>

activity_2.xml

   1: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   2:     xmlns:tools="http://schemas.android.com/tools"
   3:     android:layout_width="match_parent"
   4:     android:layout_height="match_parent" >
   5: <Textview
   6:     android:text="歡迎來(lái)到Activity2"
   7:     android:layout_centerInParent="true"
   8:     android:layout_width="match_parent"
   9:     android:layout_height="wrap_content"
  10:     android:textSize="30sp"
  11:     />
  12: </RelativeLayout>

2、對(duì)應(yīng)的代碼:

Activity1.java

   1: /**
   2:  *Activity生命周期學(xué)習(xí)
   3:  *@author 林炳文(博客 http://blog.csdn.net/evankaka/)
   4:  *@time 2015.3.19
   5:  */
   6: package com.example.activitylearning;
   7: import android.os.Bundle;
   8: import android.app.Activity;
   9: import android.content.Intent;
  10: import android.util.Log;
  11: import android.view.View;
  12: import android.view.View.OnClickListener;
  13: import android.widget.Button;
  14: public class Activity1 extends Activity {
  15:     private static final String TAG="Avtivity1";
  16:     private Button mButton;
  17:
  18:     @Override
  19:     protected void onCreate(Bundle savedInstanceState) {
  20:         super.onCreate(savedInstanceState);
  21:         Log.d(TAG, "onCreate() called");
  22:         setContentView(R.layout.activity_1);
  23:         mButton=(Button)findViewById(R.id.id_button1);
  24:         mButton.setOnClickListener(new OnClickListener() {
  25:             @Override
  26:             public void onClick(View arg0) {
  27:                 startActivity(new Intent(Activity1.this,Activity2.class));
  28:
  29:             }
  30:         });
  31:     }
  32:     @Override
  33:     protected void onStart(){
  34:         super.onStart();
  35:         Log.d(TAG, "onStart() called");
  36:
  37:     }
  38:     @Override
  39:     protected void onResume(){
  40:         super.onResume();
  41:         Log.d(TAG,"onResume() called");
  42:
  43:     }
  44:     @Override
  45:     protected void onPause(){
  46:         super.onPause();
  47:          Log.d(TAG, "onPause() called");
  48:
  49:     }
  50:     @Override
  51:     protected void onStop(){
  52:         super.onStop();
  53:          Log.d(TAG, "onStop() called");
  54:
  55:     }
  56:     protected void onDestroy(){
  57:         super.onDestroy();
  58:          Log.d(TAG, "onDestroy() called");
  59:
  60:     }
  61:
  62:
  63: }

Activity2.java

   1: package com.example.activitylearning;
   2:
   3: import android.app.Activity;
   4: import android.os.Bundle;
   5: import android.util.Log;
   6:
   7: public class Activity2 extends Activity {
   8:     private static final String TAG="Avtivity2";
   9:     @Override
  10:     protected void onCreate(Bundle savedInstanceState) {
  11:         super.onCreate(savedInstanceState);
  12:         Log.d(TAG, "onCreate() called");
  13:         setContentView(R.layout.activity_2);
  14:     }
  15:     @Override
  16:     protected void onStart(){
  17:         super.onStart();
  18:         Log.d(TAG, "onStart() called");
  19:
  20:     }
  21:     @Override
  22:     protected void onResume(){
  23:         super.onResume();
  24:         Log.d(TAG,"onResume() called");
  25:
  26:     }
  27:     @Override
  28:     protected void onPause(){
  29:         super.onPause();
  30:          Log.d(TAG, "onPause() called");
  31:
  32:     }
  33:     @Override
  34:     protected void onStop(){
  35:         super.onStop();
  36:          Log.d(TAG, "onStop() called");
  37:
  38:     }
  39:     protected void onDestroy(){
  40:         super.onDestroy();
  41:          Log.d(TAG, "onDestroy() called");
  42:
  43:     }
  44:
  45: }

3、Activity注冊(cè)

Androidmanifest.xml中

增加:

   1: <activity
   2:     android:name="com.example.activitylearning.Activity2"
   3:     android:label="@string/app_name">
   4: </activity>

                       玩轉(zhuǎn)Android之Activity詳細(xì)剖析 玩轉(zhuǎn)Android之Activity詳細(xì)剖析

4、運(yùn)行結(jié)果

(1)、在Activity中點(diǎn)擊按鈕:?jiǎn)?dòng)Activity2

玩轉(zhuǎn)Android之Activity詳細(xì)剖析

從上面可以看出Activity1沒(méi)被毀掉,而是變成Stop()了,當(dāng)前變成不可見(jiàn)。

(2 )然后再點(diǎn)擊后退鍵:

 

玩轉(zhuǎn)Android之Activity詳細(xì)剖析

五、由一個(gè)Activity啟動(dòng)另一個(gè)Activity(帶數(shù)據(jù)傳遞)

1、界面

activity_1.xml(放在layout)

   1: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   2:     xmlns:tools="http://schemas.android.com/tools"
   3:     android:layout_width="match_parent"
   4:     android:layout_height="match_parent"
   5:     tools:context=".Activity1" >
   6: <Button
   7:     android:id="@+id/id_button1"
   8:     android:layout_width="match_parent"
   9:     android:layout_height="wrap_content"
  10:     android:text="啟動(dòng)Activity2"
  11:     />
  12:
  13: <EditText
  14:     android:id="@+id/id_edittext1"
  15:     android:layout_below="@id/id_button1"
  16:     android:layout_width="match_parent"
  17:     android:layout_height="wrap_content"
  18:     />
  19: <EditText
  20:     android:id="@+id/id_edittext2"
  21:     android:layout_below="@id/id_edittext1"
  22:     android:layout_width="match_parent"
  23:     android:layout_height="wrap_content"
  24:     />
  25: </RelativeLayout>

activity_2.xml(放在layout)

   1: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   2:     xmlns:tools="http://schemas.android.com/tools"
   3:     android:layout_width="match_parent"
   4:     android:layout_height="match_parent" >
   5: <TextView
   6:     android:id="@+id/id_textview1"
   7:     android:layout_width="match_parent"
   8:     android:layout_height="wrap_content"
   9:     android:textSize="30sp"
  10:     />
  11: <TextView
  12:     android:id="@+id/id_textview2"
  13:     android:layout_below="@id/id_textview1"
  14:     android:layout_width="match_parent"
  15:     android:layout_height="wrap_content"
  16:     android:textSize="30sp"
  17:     />
  18: </RelativeLayout>

兩個(gè)效果如下:

 

                  玩轉(zhuǎn)Android之Activity詳細(xì)剖析玩轉(zhuǎn)Android之Activity詳細(xì)剖析

2、主要代碼。

Activity1.java中

   1: Intent mIntent=new Intent(Activity1.this,Activity2.class);
   2:  String mString1 = mEditText1.getText().toString();
   3:  String mString2 = mEditText1.getText().toString();
   4:  mIntent.putExtra("one",mString1);
   5:  mIntent.putExtra("two",mString2);
   6: startActivity(mIntent);

Activity2.java中

   1: mTextView1=(TextView)findViewById(R.id.id_textview1);
   2: mTextView2=(TextView)findViewById(R.id.id_textview1);
   3:
   4:  String mString1=getIntent().getStringExtra("one");
   5:  String mString2=getIntent().getStringExtra("two");
   6:
   7:  mTextView1.setText(mString1);
   8:  mTextView2.setText(mString1);

3、運(yùn)行結(jié)果

               玩轉(zhuǎn)Android之Activity詳細(xì)剖析               玩轉(zhuǎn)Android之Activity詳細(xì)剖析

左邊為Activity1,右邊為Activity2.它會(huì)得到Activity1的結(jié)果并在TextView中顯示出來(lái)

六、得到返回的Activity的數(shù)據(jù)

這里要實(shí)現(xiàn)在Activity1中的兩個(gè)EditText中輸入內(nèi)容,打開(kāi)Activity2,將Activity1中的兩個(gè)EditText的內(nèi)容顯示在Activity2的兩個(gè)TextView中。

在在Activity2中的兩個(gè)EditText中輸入內(nèi)容,按下返回鍵,將Activity2中的兩個(gè)EditText的內(nèi)容顯示在Activity1的兩個(gè)TextView中。

1、布局

            玩轉(zhuǎn)Android之Activity詳細(xì)剖析         玩轉(zhuǎn)Android之Activity詳細(xì)剖析

2、主要代碼

Activity1.java中:

   1: mButton=(Button)findViewById(R.id.id_button1);
   2:    mButton.setOnClickListener(new OnClickListener() {
   3:        @Override
   4:        public void onClick(View arg0) {
   5:            Intent mIntent=new Intent(Activity1.this,Activity2.class);
   6:             String mString1 = mEditText1.getText().toString();
   7:             String mString2 = mEditText2.getText().toString();
   8:             mIntent.putExtra("one",mString1);
   9:             mIntent.putExtra("two",mString2);
  10:             startActivityForResult(mIntent, 0);
  11:
  12:        }
  13:    });

注意要用 startActivityForResult(mIntent, 0);//0表示標(biāo)識(shí),等下Activity也要標(biāo)志為0

然后是處理Activity2返回后的事件

   1: @Override
   2: protected void onActivityResult(int requestCode, int resultCode, Intent data) {
   3:     super.onActivityResult(requestCode, resultCode, data);
   4:     if(null==data)
   5:         return;
   6:     TextView  mTextView3=(TextView)findViewById(R.id.id_textview3);
   7:     TextView  mTextView4=(TextView)findViewById(R.id.id_textview4);
   8:
   9:       String mString3=data.getStringExtra("three");
  10:         String mString4=data.getStringExtra("four");
  11:
  12:         mTextView3.setText(mString3);
  13:         mTextView4.setText(mString4);
  14: }

Activity2.java中:

在按下返回鍵的事件中,增加一些數(shù)據(jù)傳遞,其實(shí)這里主要是setResult(0,result);注意0要和上面的startActivityForResult(mIntent, 0);對(duì)應(yīng)。

   1: @Override
   2: public boolean onKeyDown(int keyCode, KeyEvent event) {
   3:    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
   4:
   5:        EditText       mEditText3=(EditText)findViewById(R.id.id_edittext3);
   6:        EditText     mEditText4=(EditText)findViewById(R.id.id_edittext4);
   7:        String mData1 = mEditText3.getText().toString();
   8:          String mData2 = mEditText4.getText().toString();
   9:        Intent result = new Intent();
  10:        result.putExtra("three", mData1);
  11:        result.putExtra("four", mData2);
  12:        setResult(0, result);
  13:
  14:    }
  15:    return super.onKeyDown(keyCode, event);
  16: }

3、效果

從Activity1中啟動(dòng)Activity2,可以看到,數(shù)據(jù)傳遞過(guò)去了

           玩轉(zhuǎn)Android之Activity詳細(xì)剖析                玩轉(zhuǎn)Android之Activity詳細(xì)剖析

 

                                Activity1                                        Activity2

從Activity2中返回到Activity1中,可以看到,數(shù)據(jù)返回了

            玩轉(zhuǎn)Android之Activity詳細(xì)剖析      玩轉(zhuǎn)Android之Activity詳細(xì)剖析

                                   Activity2                                        Activity1

八、額外內(nèi)容

Activity返回值

    使用startActivity方式啟動(dòng)的Activity和它的父Activity無(wú)關(guān),當(dāng)它關(guān)閉時(shí)也不會(huì)提供任何反饋??勺兺ǖ?,你可以啟動(dòng)一個(gè)Activity作為子Activity,它與父Activity有內(nèi)在的聯(lián)系。當(dāng)子Activity關(guān)閉時(shí),它會(huì)觸發(fā)父Activity中的一個(gè)事件處理函數(shù)。子Activity最適合用在一個(gè)Activity為其它的Activity提供數(shù)據(jù)(例如用戶從一個(gè)列表中選擇一個(gè)項(xiàng)目)的場(chǎng)合。

    子Activity的創(chuàng)建和普通Activity的創(chuàng)建相同,也必須在應(yīng)用程序的manifest中注冊(cè)。任何在manifest中注冊(cè)的Activity都可以用作子Activity。

啟動(dòng)子Activity

    startActivityForResult方法和startActivity方法工作很相似,但有一個(gè)很重要的差異。Intent都是用來(lái)決定啟動(dòng)哪個(gè)Activity,你還可以傳入一個(gè)請(qǐng)求碼。這個(gè)值將在后面用來(lái)作為有返回值A(chǔ)ctivity的唯一ID。

下面的代碼顯示了如何啟動(dòng)一個(gè)子Activity:

    private static final int SHOW_SUBACTIVITY = 1;

    Intent intent = new Intent(this, MyOtherActivity.class);

    startActivityForResult(intent, SHOW_SUBACTIVITY);

    和正常的Activity一樣,子Activity可以隱式或顯式啟動(dòng)。下面的框架代碼使用一個(gè)隱式的Intent來(lái)啟動(dòng)一個(gè)新的子Activity來(lái)挑選一個(gè)聯(lián)系人:

    private static final int PICK_CONTACT_SUBACTIVITY = 2;

    Uri uri = Uri.parse(“content://contacts/people”);

    Intent intent = new Intent(Intent.ACTION_PICK, uri);

    startActivityForResult(intent, PICK_CONTACT_SUBACTIVITY);

返回值

當(dāng)子Activity準(zhǔn)備關(guān)閉時(shí),在finish之前調(diào)用setResult來(lái)給調(diào)用的Activity返回一個(gè)結(jié)果。

setResult方法帶兩個(gè)參數(shù):結(jié)果碼和表示為Intent的負(fù)載值。結(jié)果碼是運(yùn)行子Activity的結(jié)果,一般是Activity.RESULT_OK或Activity.RESULT_CANCELED。在一些情況下,你會(huì)希望使用自己的響應(yīng)代號(hào)來(lái)處理特定的應(yīng)用程序的選擇;setResult支持任何整數(shù)值。

作為結(jié)果返回的Intent可以包含指向一個(gè)內(nèi)容(例如聯(lián)系人,電話號(hào)碼或媒體文件)的URI和一組用來(lái)返回額外信息的Extra。

接下來(lái)的代碼片段節(jié)選自子Activity的onCreate方法,顯示了怎樣向調(diào)用的Activity返回不同的結(jié)果:

   1: Button okButton = (Button) findViewById(R.id.ok_button);
   2:
   3: okButton.setOnClickListener(new View.OnClickListener() {
   4:
   5: public void onClick(View view)
   6:
   7: {
   8:
   9: Uri data = Uri.parse(“content://horses/” + selected_horse_id);
  10:
  11: Intent result = new Intent(null, data);
  12:
  13: result.putExtra(IS_INPUT_CORRECT, inputCorrect);
  14:
  15: result.putExtra(SELECTED_PISTOL, selectedPistol);
  16:
  17: setResult(RESULT_OK, result);
  18:
  19: finish();
  20:
  21: }
  22:
  23: });
  24:
  25: Button cancelButton = (Button) findViewById(R.id.cancel_button);
  26:
  27: cancelButton.setOnClickListener(new View.OnClickListener() {
  28:
  29: public void onClick(View view)
  30:
  31: {
  32:
  33: setResult(RESULT_CANCELED, null);
  34:
  35: finish();
  36:
  37: }
  38:
  39: });

處理子Activity的結(jié)果

    當(dāng)子Activity關(guān)閉時(shí),它的父Activity的onActivityResult事件處理函數(shù)被觸發(fā)。

重寫(xiě)這個(gè)方法來(lái)處理從子Activity返回的結(jié)果。onActivityResult處理器接受好幾個(gè)參數(shù):

請(qǐng)求碼

  曾經(jīng)用來(lái)啟動(dòng)子Activity的請(qǐng)求碼。

結(jié)果碼

    結(jié)果碼是由子Activity設(shè)置的,用來(lái)顯示它的結(jié)果。它可以是任何整數(shù)值,但典型的值是Activity.RESULT_OK和Activity.RESULT_CANCELLED。

如果子Activity非正常關(guān)閉或在關(guān)閉時(shí)沒(méi)有指定結(jié)果碼,結(jié)果碼都是Activity.RESULT_CANCELED。

數(shù)據(jù)

    一個(gè)Intent來(lái)打包任何返回的數(shù)據(jù)。依賴于子Activity的目的,它可能會(huì)包含一個(gè)代表特殊的從列表中選擇的數(shù)據(jù)的URI。可變通的,或額外的,子Activity可以使用“extras”機(jī)制以基礎(chǔ)值的方式返回臨時(shí)信息。

下面的框架代碼實(shí)現(xiàn)了一個(gè)Activity中的onActivityResult事件處理函數(shù):

   1: private static final int SHOW_SUB_ACTIVITY_ONE = 1;
   2:
   3: private static final int SHOW_SUB_ACTIVITY_TWO = 2;
   4:
   5: @Override
   6:
   7: public void onActivityResult(int requestCode, int resultCode, Intent data) {
   8:
   9: super.onActivityResult(requestCode, resultCode, data);
  10:
  11: switch(requestCode)
  12:
  13: {
  14:
  15: case (SHOW_SUB_ACTIVITY_ONE) :
  16:
  17: {
  18:
  19: if (resultCode == Activity.RESULT_OK)
  20:
  21: {
  22:
  23: Uri horse = data.getData();
  24:
  25: boolean inputCorrect = data.getBooleanExtra(IS_INPUT_CORRECT, false);
  26:
  27: String selectedPistol = data.getStringExtra(SELECTED_PISTOL);
  28:
  29: }
  30:
  31: break;
  32:
  33: }
  34:
  35: case (SHOW_SUB_ACTIVITY_TWO) :
  36:
  37: {
  38:
  39: if (resultCode == Activity.RESULT_OK)
  40:
  41: {
  42:
  43: // TODO: Handle OK click.
  44:
  45: }
  46:
  47: break;
  48:
  49: }
  50:
  51: }
  52:
  53: }
向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI