Android开发之使用意图

意图的用途一般是连接活动,传递数据,从意图返回数据等,下面的例子就是利用意图来交互MainActivity和SecondActivity这两个活动。

效果图如下:

实现代码如下:

MainActivity类代码:

package com.example.usingintent;

import android.R.integer;
import android.app.Activity;
import android.app.LauncherActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends Activity {
    int request_Code = 1;
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
    
    public void onClick(View v){
        Intent intent = new Intent(MainActivity.this,SecondActivity.class);
        startActivity(intent);
    }
    public void onClick2(View v){
        Intent intent = new Intent(MainActivity.this,SecondActivity.class);
        startActivityForResult(intent, request_Code);
        
    }
    public void onClick3(View v){
        Intent intent = new Intent("com.example.usingintent.SecondActivity");
        intent.putExtra("str1", "This is string 1");
        intent.putExtra("age1", 24);
        
        Bundle bundle = new Bundle();
        bundle.putString("str2", "This is string 2");
        bundle.putInt("age2", 48);
        intent.putExtras(bundle);
        
        startActivityForResult(intent, request_Code);
        
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        // TODO Auto-generated method stub
        if(requestCode == request_Code){
            if(resultCode==RESULT_OK){
                Toast.makeText(this, data.getData().toString(),    Toast.LENGTH_SHORT).show();
            }else if(resultCode == 24){
                Toast.makeText(this, Integer.toString(data.getIntExtra("age3", 1)), Toast.LENGTH_SHORT).show();
                Toast.makeText(this, data.getData().toString(), Toast.LENGTH_SHORT).show();
            }
        }
    }
    
}

SecondActivity类代码:

package com.example.usingintent;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

public class SecondActivity extends Activity {
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.second);
        
        //获取传递过来的数据
        Toast.makeText(this, getIntent().getStringExtra("str1"), Toast.LENGTH_SHORT).show();
        Toast.makeText(this, Integer.toString(getIntent().getIntExtra("age1",0)), Toast.LENGTH_SHORT).show();
        
        Bundle bundle = getIntent().getExtras();
        Toast.makeText(this, bundle.getString("str2"), Toast.LENGTH_SHORT).show();
        Toast.makeText(this, Integer.toString(bundle.getInt("age2")), Toast.LENGTH_SHORT).show();
        
    }
    public void onClick(View v) {
        Intent data = new Intent();
        EditText editText = (EditText)findViewById(R.id.txt_username);
        
        data.setData(Uri.parse(editText.getText().toString()));
        setResult(RESULT_OK, data);
        
        //destroy current activity
        finish();
    }
    public void onClick2(View v) {
        Intent intent = new Intent();
        //返回数据
        intent.putExtra("age3", 45);
        intent.setData(Uri.parse("something pass back to main activity"));
        setResult(24, intent);
        
        //destroy current activity
        finish();
    }
}
原文地址:https://www.cnblogs.com/JczmDeveloper/p/3654738.html