java活动传递字符串,关于java:如何将字符串从一个活动传递到另一个活动?

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

我想知道如何传递和读取来自另一个活动的一个活动中的字符串。 我有两个活动。 我将它们称为Activity1和Activity2。 我在Activity1中有一个名为course的字符串。 我想在Activity2中读取该字符串。

我试过这样做,但字符串出来了。

public class Activity2 extends Activity1 {

我见过人们使用Intent函数,但我无法弄清楚如何使用它。

有什么建议? 谢谢!

你能粘贴完整的代码吗? 如果课程是Activity1的一部分,请尝试Activity2扩展Activity1。

我纠正了。 我打算在输入问题时写一下。 它没有给出任何错误,只是空洞。

使用Intent是正确的方法。

使用意图传递值。

在你的第一个活动中

Intent i= new Intent("com.example.secondActivity");

i.putExtra("key",mystring);

// for explicit intents

// Intent i= new Intent(ActivityName.this,SecondActivity.class);

// parameter 1 is the key

// parameter 2 is the value

// your value

startActivity(i);

在您的第二个活动中检索它。

Bundle extras = getIntent().getExtras();

if (extras != null) {

String value = extras.getString("key");

//get the value based on the key

}

要传递自定义对象,您可以查看此链接

谢谢!。 有效。

如果有帮助,@ ezcats会接受答案。

我只能在10分钟后接受它。 我已经做了。

@ezcats谢谢:)

你的第一个活动,Activity1

public class Activity1 extends Activity {

Button btn;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity1);

btn=(Button) findViewById(R.id.payBtn);

btn.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View arg0) {

Intent intent=new Intent(Activity1.this,Activity2.class);

intent.putExtra("course","courseValue");

startActivity(intent);

}

});

}

}

Activity2

public class Activity2 extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity2);

String course=getIntent().getExtras().getString("course").toString();

Log.d("course",course);

}

}

希望这会帮助你。

在您的MainActivity中

Intent i= new Intent(MainActivity.this,SecondActivity.class);

i.putExtra("key",yourstring);

startActiivty(i);

在你的第二个活动onCreate()

Bundle extras = getIntent().getExtras();

if (extras != null) {

String value = extras.getString("key");

}

从活动1调用这样的事情:

Intent intent= new Intent("path.secondActivity");

intent.putExtra("keyString",sampleString);

startActiivty(intent);

并在活动2尝试这样的事情:

Bundle values = getIntent().getExtras();

if (values != null) {

String keyString = values.getString("keyString");

}

你走在正确的轨道上 - 你正在使用意图启动第二项活动。您所要做的就是添加intent.putExtra("title", stringObject);,其中stringObject是您要传递的字符串,title是您要为该对象提供的名称。您使用该名称来引用第二个活动中传递的对象,如下所示:

String s = (String)getIntent().getExtras().getSerializable("title");

当我这样做时,我似乎得到了这个错误。 :不能从Intent类型对非静态方法putExtra(String,String)进行静态引用

你是否从静态方法中调用putExtra? 如果是这样,你确定你需要这样做吗?

试试这个

公共类Activity2扩展了Activity1

我纠正了我的代码。 这就是我做的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值