android intent.java,关于java:如何使用Android中的Intent将结果从一个活动返回到另一个活动?...

本问题已经有最佳答案,请猛点这里访问。

所以,这就是东西 - 我有一个mainactivity类和一个Splash类。 mainactivity包含两个TextView和一个按钮。现在,我有我的splash类,它有两个editTexts和一个Ok Button。我的目标是当我运行android程序时,主要活动加载。然后我点击按钮,Splash活动加载。在splash活动中,我在EditText框中输入两个数字,这些数字将在Intent对象中捕获,并在Main Activity中的相应TextView标签中返回。现在,当我尝试捕获一个值并在原始活动(主要活动)中返回该值时,我的代码工作正常,但当我尝试使用两个值并使用相同的概念时,我在Splash活动中输入的第二个数字将覆盖第一个活动,我看到第二个数字重复两次。我该如何解决?如何在intent中捕获多个值,并将它们返回到Main Activity类中的相应标签中。这是代码: -

MainActivity.java

package com.example.user.androidpractise4;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.view.Window;

import android.widget.Button;

import android.widget.TextView;

import android.widget.Toast;

public class MainActivity extends Activity {

Button b;

int code = 1;

String a,c;

int num;

int num1;

TextView t,v;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_NO_TITLE);

setContentView(R.layout.activity_main);

b = (Button)findViewById(R.id.Btn1);

t = (TextView)findViewById(R.id.textView2);

v = (TextView)findViewById(R.id.TextV);

b.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

startActivityForResult(new Intent("com.example.user.androidpractise4.SPLASH"), code);

}

});

}

public void onActivityResult(int requestCode, int resultCode, Intent data)

{

if (requestCode == code) {

if (resultCode == RESULT_OK) {

// Toast.makeText(this, data.getData().toString(),

//Toast.LENGTH_SHORT).show();

a = data.getData().toString();

num = Integer.parseInt(a);

t.setText("" + num);

//这是我试图即兴创作的部分,但它不起作用

c = dat.getData().toString();

num1 = Integer.parseInt(c);

t.setText("" + num1);

int total = num1 + num;

}

}

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.menu_main, menu);

return true;

}

@Override

public boolean onOptionsItemSelected(MenuItem item) {

// Handle action bar item clicks here. The action bar will

// automatically handle clicks on the Home/Up button, so long

// as you specify a parent activity in AndroidManifest.xml.

int id = item.getItemId();

//noinspection SimplifiableIfStatement

if (id == R.id.action_settings) {

return true;

}

return super.onOptionsItemSelected(item);

}

}

Splash.java:-

package com.example.user.androidpractise4;

import android.app.Activity;

import android.content.Intent;

import android.net.Uri;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.TextView;

/**

* Created by user on 11-08-2015.

*/

public class Splash extends Activity {

Button b1;

EditText display,disp;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.splash);

b1 = (Button)findViewById(R.id.button);

display = (EditText)findViewById(R.id.editText);

disp =(EditText)findViewById(R.id.editText2);

b1.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

Intent data = new Intent();

data.setData(Uri.parse(display.getText().toString()));

setResult(RESULT_OK, data);

//我添加了以下部分,看看我是否可以使用Intent从// Splash活动中捕获多个值并将其返回到MainActivity。

Intent dat = new Intent();

dat.setData(Uri.parse(disp.getText().toString()));

setResult(RESULT_OK, dat);

finish();

}

});

}

}

你应该在结果意图中放置你需要的任何东西,然后从额外的东西中获取它们。

就这样做:

在Splash中:

b1.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

Intent data = new Intent();

data.putExtra("n1", display.getText().toString());

dat.putExtra("n2", disp.getText().toString());

setResult(RESULT_OK, dat);

finish();

}

});

并在MainActivity中:

public void onActivityResult(int requestCode, int resultCode, Intent data)

{

if (requestCode == code) {

if (resultCode == RESULT_OK) {

// Toast.makeText(this, data.getData().toString(),

//Toast.LENGTH_SHORT).show();

a = data.getStringExtra("n1");

num = Integer.parseInt(a);

t.setText("" + num);

c = data.StringExtra("n2");

num1 = Integer.parseInt(c);

t.setText("" + num1);

int total = num1 + num;

}

}

}

:- 非常感谢。 这对我帮助很大。

欢迎你,祝你好运;)

您可以访问第二个活动公共字段以更新值。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值