[英]Pass value from one activity to another
我想將價值從一項活動傳遞到另一項活動。
A -> B ->A
,其中A是主要活動。 此代碼在B->A
但在A->B
無效
這是我的活動A代碼
class ChangeTextStyleTouchListener implements OnClickListener
{
@Override
public void onClick(View view) {
int request_code = 101;
Intent intent = new Intent().setClass(context, ColorPickerActivity.class);
intent.putExtra("colorCode", addText.getTextColors());
intent.putExtra("fontSize", addText.getTextSize());
startActivityForResult(intent,request_code); }
}
這是我的活動B代碼
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.act_picker);
findViewById(R.id.btnAddSize).setOnClickListener((OnClickListener) new addTouchListener());
findViewById(R.id.btnMinusSize).setOnClickListener((OnClickListener) new minusTouchListener());
Bundle extras = getIntent().getExtras();
if (extras != null) {
int color = extras.getInt("colorCode");
colorPicker.setColor(color);
int size = extras.getInt("fontSize");
colorPicker.setSize(size);
}
}
我的extras
為空。
// try this
**Class A**
call B with pass extra
Intent intent = new Intent().setClass(context, B.class);
intent.putExtra("colorCode", addText.getTextColors());
intent.putExtra("fontSize", addText.getTextSize());
startActivityForResult(intent,request_code);
result from B
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==RESULT_OK){
if(requestCode==request_code){
int color = data.getIntExtra("colorCode", 0);
colorPicker.setColor(color);
int size = data.getIntExtra("fontSize", 0);
colorPicker.setSize(size);
}
}
}
**Class B**
getting extra from A
int color = getIntent().getIntExtra("colorCode",0);
colorPicker.setColor(color);
int size = getIntent().getIntExtra("fontSize",0);
colorPicker.setSize(size);
pass result to A
Intent intent = new Intent(context,A.class);
intent.putExtra("colorCode", addText.getTextColors());
intent.putExtra("fontSize", addText.getTextSize());
setResult(RESULT_OK,intent);
finish();
您的代碼幾乎就在那里。 您正在開始活動B
以獲得結果。.這意味着,如果您從B
按下,您將在活動A
得到結果。 這里唯一缺少的是您什么也不返回。 您需要在活動B
設置setResult()
並設置有關您要返回的內容的附加功能。 從B
返回的結果也將在A
onActivityResult()
方法中可用。因此,請確保根據您的要求覆蓋它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.