Activity间数据传递与版本兼容问题

public class QuizActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // 当前设备版本号 >= API level 11
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {// 检查Android设备版本
            ActionBar actionBar = getActionBar();//ActionBar来自于API level 11,而应用当前的最低版本为API level 8
            actionBar.setSubtitle("Bodies of Water");
        }
        mCheatButton.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                Intent intent = new Intent(QuizActivity.this,
                        CheatActivity.class);
                intent.putExtra(CheatActivity.EXTRA_ANSWER_IS_TRUE,
                        mQuestionBank[mCurrentIndex].isTrueQuestion());
                startActivityForResult(intent, 0);
                // activty调用startActivity(...)方法时,调用请求实际上发送给操作系统的ActivityManager。
                // ActivityManager负责创建Activity实例并调用其onCreate(...)方法。同一应用里的两个activity间,
                // 通信却要借助于外部的ActivityManager,这可能有点奇怪。不过,这种模式会使不同应用间的activity交互变得容易得多。
            }
        });     
    }
}
package com.huangfei.geoquiz;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class CheatActivity extends Activity {
    // activity可能启动自不同的地方,我们应该为activity获取和使用的extra定义key。使用包名来修饰extra数据信息,这样可以避免来自不同应用的extra间发生命名冲突。
    public static final String EXTRA_ANSWER_IS_TRUE = "com.huangfei.geoquiz.answer_is_true";
    public static final String EXTRA_ANSWER_SHOW = "com.huangfei.geoquiz.answer_show";

    private TextView mAnswerShowTextView;
    private Button mShowAnswer;
    private boolean mAnswerIsTrue;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_cheat);

        mAnswerIsTrue = getIntent().getBooleanExtra(EXTRA_ANSWER_IS_TRUE, false);

        mAnswerShowTextView = (TextView) findViewById(R.id.answerTextView);
        mShowAnswer = (Button) findViewById(R.id.showAnswerButton);

        mShowAnswer.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                if(mAnswerIsTrue){
                    mAnswerShowTextView.setText(R.string.true_button);
                }else {
                    mAnswerShowTextView.setText(R.string.false_button);
                }

                setAnswerShowResult(true);
            }
        });
    }

    private void setAnswerShowResult(boolean isAnswerShow) {
        Intent data = new Intent();
        data.putExtra(EXTRA_ANSWER_SHOW, isAnswerShow);
        setResult(RESULT_OK, data);
    }


}

代码地址

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值