zoukankan      html  css  js  c++  java
  • 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;
      }
    }

  • 相关阅读:
    java集合框架小结(初级版)
    [leetcode]Decode Ways
    [leetcode]Distinct Subsequences
    [leetcode]Longest Valid Parentheses
    [leetcode]Edit distance
    python+selenium浏览器调用(chrome、ie、firefox)
    Python爬虫入门(6):Cookie的使用
    Python进行RSA安装加密
    解决cron无法运行报错:FAILED to authorize user with PAM (Module is unknown)
    使用eclipse开发Java web应用
  • 原文地址:https://www.cnblogs.com/zhouhb/p/4170142.html
Copyright © 2011-2022 走看看