• Android学习之Intent使用


    1、使用显示Intent

    Intent intent = new Intent(FirstActivity.this,SecondActivity.class);

    startActivity(intent);

    上述代码的作用是打开活动SecondActivity

    2、使用隐式Intent

    首先打开AndroidManifest.xml,添加代码:

    <activity
    android:name="com.example.activitytest.SecondActivity"
    android:label="@string/title_activity_second" >
    <intent-filter>
    <action android:name="com.example.activitytest.ACTION_START" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="com.example.activitytest.MY_CATEGORY" />
    </intent-filter>
    </activity>

    然后修改FirstActivity中按钮的点击事件:

    btn.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
    // TODO Auto-generated method stub
    Intent intent=new Intent("com.example.activitytest.ACTION_START");

    intent.addCategory("com.example.activitytest.MY_CATEGORY");

    startActivity(intent);
    }
    });

    还可以使用隐式Intent,启动其他程序的活动。

    Intent intent=new Intent(Intent.ACTION_VIEW);
    intent.setData(Uri.parse("http://www.cnblogs.com/zhouhb/"));
    //Intent intent=new Intent(Intent.ACTION_DIAL);
    //intent.setData(Uri.parse("tel:12345"));

    3、使用Intent在Activity之间传递数据

    3.1 从FirstActivity向SecondActivity传递数据

    String s="from first";
    Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
    intent.putExtra("data", s);
    startActivityForResult(intent, 1);

    3.2 SecondActivity接收传递来的数据

    Button btn=(Button)findViewById(R.id.button2);
    Intent intent=getIntent();
    String string=intent.getStringExtra("data");
    btn.setText(string);

    3.3 SecondActivity向FirstActivity返回数据

    btn.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View arg0) {
    // TODO Auto-generated method stub
    returnData();
    }
    });

    private void returnData() {
    Intent intent=new Intent();
    intent.putExtra("returnData", "from Second");
    setResult(RESULT_OK,intent);
    finish();
    }

    //如果用户不是通过点击按钮,而是按下Back键回到FirstActivity,则重写 onBackPressed

    public void onBackPressed() {
    // TODO Auto-generated method stub
    returnData();
    }

    3.4 在FirstActivity中重写onActivityResult得到SecondActivity返回的数据

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    switch (requestCode) {
      case 1:
        if(resultCode==RESULT_OK){
          String string=data.getStringExtra("returnData");
          Toast.makeText(this, string, Toast.LENGTH_SHORT).show();
        }
        break;

      default:
      break;
      }
    }

  • 相关阅读:
    「AHOI2018 初中组」根式化简(分解质因数+推性质)
    「TJOI2018」智力竞赛(二分+DAG最小可相交路径覆盖)
    「LibreOJ NOI Round #1」动态几何问题(mobius反演+分块)
    「LibreOJ NOI Round #1」北校门外的回忆(找性质+倍增+线段树)
    USACO 2020 Open Contest, Platinum(exercise)(min-max容斥+计数dp)
    「LibreOJ β Round」ZQC 的截图(随机+hash)
    BM算法模板
    「THUSCH 2017」如果奇迹有颜色(burnside引理+状压dp+打表+BM+常系数齐次线性递推)
    「THUSCH 2017」换桌(zkw费用流)—对几种费用流算法的总结
    iOS学习笔记42-Swift(二)函数和闭包
  • 原文地址:https://www.cnblogs.com/zhouhb/p/4170142.html
Copyright © 2020-2023  润新知