a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 系統(tǒng) > Android > 正文

基于android startActivityForResult的學(xué)習(xí)心得總結(jié)

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

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函數(shù)里,接收來自main里的intent發(fā)來的數(shù)據(jù)。
復(fù)制代碼 代碼如下:

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
        okButton = (Button)findViewById(R.id.ok); //按這個(gè)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傳回來的數(shù)據(jù)是:"+getStr,
        Toast.LENGTH_SHORT).show();
        okButton.setOnClickListener(new okButtonListen());        

       
    }

3,在SecondActivity里實(shí)現(xiàn)監(jiān)聽Ok按鍵,按下后返回到MainActivity,同時(shí)自己關(guān)閉,并給MainActivity發(fā)送數(shù)據(jù)。ok按鍵的監(jiān)聽代碼如下:
復(fù)制代碼 代碼如下:

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

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

 @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,
"我回來的,第二個(gè)activity傳回的數(shù)據(jù)是:"+str,
Toast.LENGTH_SHORT).show();
}
}

注意:這里面不要再新建Intent,onActivityResult有三個(gè)參數(shù),第三個(gè)參數(shù)就是Intent,只需要用他做參數(shù)就行了。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 中文字幕一区二区三区四区不卡 | 日韩视频在线免费观看 | 日韩精品在线一区 | 欧美日韩一区二区中文字幕 | 99热精品在线 | 久久精品欧美一区二区三区不卡 | 中文字幕在线亚洲 | 操人网 | 干干干操操操 | 国产精品久久久久久一级毛片 | 在线视频一区二区三区 | 一区二区三区在线观看免费 | 久久第一区 | 日韩中文字幕在线视频 | 日本在线观看视频 | 亚洲女人天堂成人av在线 | 亚洲精品视频在线 | 九色 在线 | 久久国产精品久久久久久 | 欧美高清dvd | 国产亚洲一区二区精品 | 国产精品美女在线观看直播 | 国产日韩欧美一区 | 久久成人亚洲 | 欧美午夜精品久久久 | 污视频免费网站观看 | 午夜精品一区二区三区在线 | 日本一区免费看 | 韩国女主播bj精品久久 | 一区二区亚洲 | 午夜精品久久久久 | 成人日批| 日本一区视频在线观看 | 国产一区不卡 | 伊人久久大香线蕉综合75 | 狠狠躁日日躁夜夜躁影院 | 亚洲一区成人 | 在线黄av| 国产天天操 | 精品久久久久久亚洲精品 | 国产欧美日韩在线观看 |