Android分步註冊,Activity由B返回A修改再前往B,B中已填項不變

來源:互聯網
上載者:User

標籤:

某日突然想到標題問題,一般來說返回上一個Activity,當前Activity應該自動銷毀。要想保留值,便想到用bundle傳遞的方式

最後功能是實現了,但感覺方法很笨。

主要代碼如下:

 1 package com.example.valuepass; 2  3 import com.example.programdemo.R; 4  5 import android.app.Activity; 6 import android.content.Intent; 7 import android.os.Bundle; 8 import android.util.Log; 9 import android.view.View;10 import android.view.View.OnClickListener;11 import android.widget.Button;12 import android.widget.EditText;13 14 15 public class MainActivity extends Activity {16     private EditText et_phonenumber;17     private Button bt_next;18     private int ACTIVITY1 = 1;19     private int USERNAME = 2;20     private Bundle bundle = new Bundle();21     private Intent intent = new Intent();22     private String TAG = "MainActivity";23     private String username;24     @Override25     protected void onCreate(Bundle savedInstanceState) {26         super.onCreate(savedInstanceState);27         setContentView(R.layout.activity_main);28         et_phonenumber = (EditText) findViewById(R.id.et_phonenumber);29         bt_next = (Button) findViewById(R.id.bt_next);30         31         bt_next.setOnClickListener(new OnClickListener(){32             @Override33             public void onClick(View v){34                 bundle.putString("phonenumber", et_phonenumber.getText().toString());35                 Log.v(TAG,et_phonenumber.getText().toString());36                 bundle.putString("username", username);37                 intent.putExtras(bundle);38                 intent.setClass(MainActivity.this,Username.class);39                 startActivityForResult(intent,ACTIVITY1);  40             }    41         });     42     }43     44     @Override45     protected void onActivityResult(int requestCode,int resultCode,Intent data){46         if(requestCode == ACTIVITY1){47             if(resultCode == USERNAME){48                 Bundle getbundle;49                 getbundle = data.getExtras();50                 username = getbundle.getString("username");51                 Log.v(TAG,username);52             }53         }54         super.onActivityResult(requestCode, resultCode, data);55     }56  57 }
 1 package com.example.valuepass; 2  3 import com.example.programdemo.R; 4  5 import android.app.Activity; 6 import android.content.Intent; 7 import android.os.Bundle; 8 import android.util.Log; 9 import android.view.View;10 import android.view.View.OnClickListener;11 import android.widget.Button;12 import android.widget.EditText;13 import android.widget.TextView;14 15 public class Username extends Activity{16     private TextView et_phonenumber;17     private EditText et_username;18     private Button bt_next;19     private Button bt_back;20     private Bundle bundle = new Bundle();21     private Intent intent = new Intent();22     private int USERNAME = 2;23     private String TAG = "Username";24     25     @Override26     public void onCreate(Bundle savedInstanceState){27         super.onCreate(savedInstanceState);28         setContentView(R.layout.username);29         et_phonenumber = (TextView)findViewById(R.id.et_phonenumber);30         et_username = (EditText)findViewById(R.id.et_username);31         bt_next = (Button)findViewById(R.id.bt_next);32         bt_back = (Button)findViewById(R.id.bt_back);33         bundle = this.getIntent().getExtras();34         Log.v(TAG,bundle.getString("phonenumber"));35         et_phonenumber.setText(bundle.getString("phonenumber"));36         et_username.setText(bundle.getString("username"));37         38         bt_next.setOnClickListener(new OnClickListener(){39             @Override40             public void onClick(View v){41                  bundle.putString("username", et_username.getText().toString());42                  intent.putExtras(bundle);43                  intent.setClass(Username.this,Finish.class);44                  startActivity(intent);45             }46         });47         48         bt_back.setOnClickListener(new OnClickListener(){49             @Override50             public void onClick(View v){51                 Bundle bundle_back = new Bundle();52                 bundle_back.putString("username", et_username.getText().toString());53                 Log.v(TAG,bundle_back.getString("username"));54                 intent.putExtras(bundle_back);55                 setResult(USERNAME,intent);56                 onBackPressed();57             }58         });59     }60 61 }
Username.java
 1 package com.example.valuepass; 2  3 import com.example.programdemo.R; 4  5 import android.app.Activity; 6 import android.os.Bundle; 7 import android.widget.TextView; 8  9 public class Finish extends Activity{10     private TextView et_phonenumber;11     private TextView et_username;12     private Bundle bundle = new Bundle();13     @Override14     public void onCreate(Bundle savedInstanceState){15         super.onCreate(savedInstanceState);16         setContentView(R.layout.finish);17         18         bundle = this.getIntent().getExtras();19         et_phonenumber = (TextView)findViewById(R.id.et_phonenumber);20         et_username = (TextView)findViewById(R.id.et_username);21         et_phonenumber.setText(bundle.getString("phonenumber"));22         et_username.setText(bundle.getString("username"));23     }24 25 }
Finish.java

 PS:後來在網上看到類似問題,有人回答:

加flag啟動activity
Intent.FLAG_ACTIVITY_REORDER_TO_FRONT這個標誌表示:如果這個activity已經啟動了,就不產生新的activity,而只是把這個activity執行個體加到棧頂來就可以了。

打算有時間試一下。不過似乎要改onBackPressed();

代碼下載

Android分步註冊,Activity由B返回A修改再前往B,B中已填項不變

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.