點下widget1按鈕,會將 "from Main" 帶到 Second畫面
Second畫面 :
點上一頁按鈕,會回傳 "from widget1"到Main
如果不是點上一頁按鈕兒是透過其他方法回到前一頁,在Main會顯示 "無參數"
startActivityForResult()除了傳值之外,還會回傳一個requestCode
所以Main要加入onActivityResult()方法,來接收辨別是哪個Activity回傳的requestCode
參數一定是從A-->B , B-->A AB兩個Activity在溝通
傳回參數的時候,只會接收參數,畫面不會刷新成預設畫面
最後要記得在AndroidManifest.xml 註冊 Activity
- <activity android:name=".SecondActivityName"></activity>
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class MainActivity extends AppCompatActivity { | |
private Button widget1; | |
private int REQUEST_CODE; | |
@Override | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.activity_main); | |
widget1 =(Button)findViewById(R.id.btnNext); | |
//下一頁 | |
widget1.setOnClickListener(new Button.OnClickListener() { | |
public void onClick(View v) { | |
Intent intent1 = new Intent(); | |
intent1.setClass(MainActivity.this, widgetActivity.class); | |
intent1.putExtra("activityMain", "from Main"); | |
//當 REQUEST_CODE =-1 等於執行 startActivity | |
// widgetActivity 回傳資料要使用 setResult | |
startActivityForResult(intent1,REQUEST_CODE); | |
//startActivity(intent1); | |
//MainActivity.this.finish(); | |
} | |
}); | |
} | |
//接收回傳值的 Function | |
@Override | |
protected void onActivityResult(int requestCode , int resultCode,Intent data) | |
{ | |
if(requestCode == REQUEST_CODE) | |
{ | |
if (resultCode == RESULT_OK){ | |
String temp=null; | |
Bundle extras = data.getExtras(); | |
if(extras != null) | |
{ | |
temp = extras.getString("widget"); | |
} | |
setTitle(temp); | |
}else | |
{ | |
setTitle("無參數"); | |
} | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class widgetActivity extends AppCompatActivity { | |
private Button prev; | |
private String data; | |
@Override | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.widget); | |
prev=(Button)findViewById(R.id.btnPrev); | |
Bundle extras =getIntent().getExtras(); | |
if(extras !=null) | |
{ | |
data=extras.getString("activityMain"); | |
setTitle("widget :" + data); | |
}else | |
{ | |
setTitle("widget"); | |
} | |
prev.setOnClickListener(new Button.OnClickListener(){ | |
public void onClick(View v) | |
{ | |
Intent intent =new Intent(); | |
intent.setClass(widgetActivity.this,MainActivity.class); | |
// Bundle 傳遞 Data | |
Bundle bundle = new Bundle(); | |
bundle.putString("widget","from widget1"); | |
intent.putExtras(bundle); | |
setResult(RESULT_OK, intent); | |
finish(); | |
} | |
}); | |
} |
沒有留言:
張貼留言