如何在Android上发送活动之间的意图变量? [英] How to send intent variable between activities on android?

查看:110
本文介绍了如何在Android上发送活动之间的意图变量?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在写一个机器人apllication和我有两个活动。我应该发送请求code,结果code和意图数据到其他活动。我已经成功地发送前两个成功地但我怎么能发送意图数据变到其他的活动?

  @覆盖
保护无效的onActivityResult(INT申请code,INT结果code,意图数据){
    super.onActivityResult(要求code,结果code,数据);
    尝试{
        //当图像拾取
        如果(要求code == RESULT_LOAD_IMG&放大器;&安培;结果code == RESULT_OK
                &功放;&安培;空!=数据){


解决方案

这FirstActivity调用次活动:

 意向意图=新意图(FirstActivity.this,SecondActivity.class);
intent.putExtra(intent_data_tag,数据);
startActivityforResult(意向,200);

在第二个活动获取意图数据:

 字符串intentData = getIntent()getStringExtra(intent_data_tag,利用DefValue);

发送结果FirstActivity:

 意图resultIntent =新意图();
 // TODO添加额外或数据URI这个意图为宜。
 resultIntent.putExtra(result_data_tag,result_data);
 的setResult(Activity.RESULT_OK,resultIntent);
 完();

获取导致FirstActivity:

  @覆盖
保护无效的onActivityResult(INT申请code,INT结果code,意图数据){
如果(要求code == 200安培;&安培;结果code == RESULT_OK&放大器;&安培;!数据= NULL){
    串resultData = data.getStringExtra(result_intent,利用DefValue)
}
}

例如:MainActivity.java

 进口android.os.Bundle;
进口android.app.Activity;
进口android.content.Intent;
进口android.view.Menu;
进口android.view.View;
进口android.view.View.OnClickListener;
进口android.widget.Button;
进口android.widget.TextView;
公共类MainActivity延伸活动{
TextView的textView1;
按钮按钮1;
@覆盖
保护无效的onCreate(捆绑savedInstanceState){
    super.onCreate(savedInstanceState);
    的setContentView(R.layout.activity_main);
    textView1 =(的TextView)findViewById(R.id.textView1);
    BUTTON1 =(按钮)findViewById(R.id.button1);
    button1.setOnClickListener(新OnClickListener(){
        @覆盖
        公共无效的onClick(查看为arg0){
            意向意图=新意图(MainActivity.this,SecondActivity.class);
            startActivityForResult(意向,2); //活动是开始要求code 2
        }
    });
}
 //回拨方法得到的消息形式与其他活动
@覆盖
   保护无效的onActivityResult(INT申请code,INT结果code,意图数据)
   {
             super.onActivityResult(要求code,结果code,数据);
              //检查请求code是一样的东西这里传递的是它是2
               如果(要求code == 2)
                     {
                        字符串消息= data.getStringExtra(MESSAGE);
                        textView1.setText(消息);
                     }
 }
@覆盖
公共布尔onCreateOptionsMenu(菜单菜单){
    //充气菜单;如果是present这增加了项目操作栏。
    。getMenuInflater()膨胀(R.menu.main,菜单);
    返回true;
}

}

SecondActivity.java

 进口android.os.Bundle;
进口android.app.Activity;
进口android.content.Intent;
进口android.view.Menu;
进口android.view.View;
进口android.view.View.OnClickListener;
进口android.widget.Button;
进口android.widget.EditText;
进口android.widget.TextView;
公共类SecondActivity延伸活动{
的EditText editText1;
按钮按钮1;
@覆盖
保护无效的onCreate(捆绑savedInstanceState){
    super.onCreate(savedInstanceState);
    的setContentView(R.layout.activity_second);
    editText1 =(EditText上)findViewById(R.id.editText1);
        BUTTON1 =(按钮)findViewById(R.id.button1);
        button1.setOnClickListener(新OnClickListener(){
            @覆盖
            公共无效的onClick(查看为arg0){
                字符串消息= editText1.getText()的toString()。
                意向意图=新的Intent();
                intent.putExtra(信息,消息);
                的setResult(2,意向);
                光洁度(); //整理活性
            }
        });
}
@覆盖
公共布尔onCreateOptionsMenu(菜单菜单){
    //充气菜单;如果是present这增加了项目操作栏。
    。getMenuInflater()膨胀(R.menu.second,菜单);
    返回true;
}
}

i’m writing an android apllication and i have two Activities. i should send the requestCode, the resultCode, and the Intent data into the other activity. I’ve managed to send the first two succesfully but how can i send „intent data " variable into an other activity?

 @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    try {
        // When an Image is picked
        if (requestCode == RESULT_LOAD_IMG && resultCode == RESULT_OK
                && null != data) {

解决方案

Calling Second Activity from FirstActivity :

Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
intent.putExtra("intent_data_tag","data");
startActivityforResult(intent,200);

get intent data in second activity:

String intentData = getIntent().getStringExtra("intent_data_tag","defValue");

Sending result to FirstActivity:

Intent resultIntent = new Intent();
 // TODO Add extras or a data URI to this intent as appropriate. 
 resultIntent.putExtra("result_data_tag","result_data");
 setResult(Activity.RESULT_OK, resultIntent);
 finish(); 

Get result in FirstActivity:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 200 && resultCode == RESULT_OK && data != null) {
    String resultData = data.getStringExtra("result_intent","defValue")
} 
} 

Example : MainActivity.java

import android.os.Bundle;  
import android.app.Activity;  
import android.content.Intent;  
import android.view.Menu;  
import android.view.View;  
import android.view.View.OnClickListener;  
import android.widget.Button;  
import android.widget.TextView;  
public class MainActivity extends Activity {  
TextView textView1;  
Button button1;  
@Override  
protected void onCreate(Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState);  
    setContentView(R.layout.activity_main);  
    textView1=(TextView)findViewById(R.id.textView1);  
    button1=(Button)findViewById(R.id.button1);  
    button1.setOnClickListener(new OnClickListener() {  
        @Override  
        public void onClick(View arg0) {  
            Intent intent=new Intent(MainActivity.this,SecondActivity.class);  
            startActivityForResult(intent, 2);// Activity is started with requestCode 2  
        }  
    });  
}  
 // Call Back method  to get the Message form other Activity  
@Override  
   protected void onActivityResult(int requestCode, int resultCode, Intent data)  
   {  
             super.onActivityResult(requestCode, resultCode, data);  
              // check if the request code is same as what is passed  here it is 2  
               if(requestCode==2)  
                     {  
                        String message=data.getStringExtra("MESSAGE");   
                        textView1.setText(message);  
                     }  
 }  
@Override  
public boolean onCreateOptionsMenu(Menu menu) {  
    // Inflate the menu; this adds items to the action bar if it is present.  
    getMenuInflater().inflate(R.menu.main, menu);  
    return true;  
}  

}

SecondActivity.java

import android.os.Bundle;  
import android.app.Activity;  
import android.content.Intent;  
import android.view.Menu;  
import android.view.View;  
import android.view.View.OnClickListener;  
import android.widget.Button;  
import android.widget.EditText;  
import android.widget.TextView;  
public class SecondActivity extends Activity {  
EditText editText1;  
Button button1;  
@Override  
protected void onCreate(Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState);  
    setContentView(R.layout.activity_second);  
    editText1=(EditText)findViewById(R.id.editText1);  
        button1=(Button)findViewById(R.id.button1);  
        button1.setOnClickListener(new OnClickListener() {  
            @Override  
            public void onClick(View arg0) {  
                String message=editText1.getText().toString();  
                Intent intent=new Intent();  
                intent.putExtra("MESSAGE",message);  
                setResult(2,intent);  
                finish();//finishing activity  
            }  
        });  
}  
@Override  
public boolean onCreateOptionsMenu(Menu menu) {  
    // Inflate the menu; this adds items to the action bar if it is present.  
    getMenuInflater().inflate(R.menu.second, menu);  
    return true;  
}  
}  

这篇关于如何在Android上发送活动之间的意图变量?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆