麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 系統 > Android > 正文

基于android startActivityForResult的學習心得總結

2020-04-11 12:18:56
字體:
來源:轉載
供稿:網友
從昨晚到現在終于調試通了一個startActivityForResult的例子,網上要么有些說的太復雜了,要么說的含糊,搞的我走了很多彎路,所以寫篇心得。
在一個主界面(主Activity)上能連接往許多不同子功能模塊(子Activity上去),當子模塊的事情做完之后就回到主界面,還同時返回一些子模塊完成的數據交給主Activity處理。  用startActivity啟動主界面是一個新的Intent實例,而訪問的主界面還在activity棧的下面沒有調出來,這樣做的一個最大的問題是,回不到原界面就不能多個子功能模塊共同來給主界面提供數據或服務了。這個時候就要用startActivityForResult了!
目的: MainActivity.java 是主界面,SecondActivity.java 是子功能模塊,要從main啟動second,second收到main發來的數據干完活之后,按按鍵OK會把結果匯報給main,同時自己關閉返回到main。
具體實現:
分四部分:
1,在MainActivity里面設置一個按鈕sendBuddle,發送數據到SecondActivity,同時跳轉到second界面。按鍵監聽代碼:
復制代碼 代碼如下:

class sendButtonListen implements OnClickListener{
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent();
String str = "dajia hao ";
intent.putExtra("send", str);
intent.setClass(MainActivity.this, SecondActivity.class);
startActivityForResult(intent, 0);
}
    }

2,在SecondActivity里面的OnCreate函數里,接收來自main里的intent發來的數據。
復制代碼 代碼如下:

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
        okButton = (Button)findViewById(R.id.ok); //按這個ok按鍵,會返回到main。      
        Intent intent = getIntent();       
        String getStr = intent.getStringExtra("send");
        TextView tv = (TextView)findViewById(R.id.sendText);
        tv.setText(getStr);
        Toast.makeText(SecondActivity.this,
        "從MainActivity傳回來的數據是:"+getStr,
        Toast.LENGTH_SHORT).show();
        okButton.setOnClickListener(new okButtonListen());        

       
    }

3,在SecondActivity里實現監聽Ok按鍵,按下后返回到MainActivity,同時自己關閉,并給MainActivity發送數據。ok按鍵的監聽代碼如下:
復制代碼 代碼如下:

 class okButtonListen implements OnClickListener{
public void onClick(View v) {
// TODO Auto-generated method stub
Intent sendIntent = new Intent(SecondActivity.this, MainActivity.class);//這種方法今天才學的,記下!方便這樣寫,坑爹的有些教程,這塊沒有給Inent綁定
       Bundle bundle = new Bundle();
       bundle.putString("send", "大家好");
       sendIntent.putExtras(bundle);
       SecondActivity.this.setResult(RESULT_OK, sendIntent);
       SecondActivity.this.finish();
}

4,返回到main后,main要接收second發來的數據。在MainActivity里復寫它的OnActivityResult方法。
復制代碼 代碼如下:

 @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==RESULT_OK){
Bundle bundle = data.getExtras();
String str = bundle.getString("send");
Toast.makeText(MainActivity.this,
"我回來的,第二個activity傳回的數據是:"+str,
Toast.LENGTH_SHORT).show();
}
}

注意:這里面不要再新建Intent,onActivityResult有三個參數,第三個參數就是Intent,只需要用他做參數就行了。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产乱淫av一区二区三区 | 亚洲成人在线视频网 | 亚洲国产资源 | 日韩av有码在线 | free japan xxxxhdsex69| 欧美日韩手机在线观看 | 日韩视频中文 | 亚洲xxx在线观看 | 精品国产一区二区三区成人影院 | 深夜毛片免费看 | 国产精品久久久久久久久久了 | 中文字幕在线观看免费视频 | 久久99国产精品久久 | 国产免费成人 | 一级国产航空美女毛片内谢 | 一级大片一级一大片 | 色综合网在线观看 | av影片在线观看 | 国产精品99久久久久久宅女 | 久久国产成人午夜av浪潮 | 一级黄色国产视频 | 国产亚洲精品综合一区91555 | 少妇的肉体k8经典 | 国产成人精品午夜视频' | 国产青草视频在线观看视频 | 一级黄色性感片 | www.99re14.com| 狠狠干天天操 | 亚洲精品午夜国产va久久成人 | 欧日韩在线视频 | 一级做受大片免费视频 | 欧美一区二区三区不卡免费观看 | 色猫av | 369看片你懂的小视频在线观看 | 欧美特黄一级高清免费的香蕉 | 在线播放免费人成毛片乱码 | 国产精选电影免费在线观看 | 日韩黄在线观看 | 久久久久久片 | 久久艳片 | 深夜福利视频绿巨人视频在线观看 |