gpt4 book ai didi

android - 在 Activity 之间发送数据时崩溃

转载 作者:行者123 更新时间:2023-12-03 16:55:51 25 4
gpt4 key购买 nike

因此,我基本上是在摆弄某种登录表单,并尝试在即将进行的 Activity 中使用用户名与用户打个招呼。代码可以毫无问题地编译,但是,一旦我单击登录按钮,应用程序就会崩溃,在尝试实现自定义的hello之前,登录已成功完成,因此问题必须出在以下代码中。

这是我称之为 Activity 的地方:

Intent k = new Intent(this, MainActivity.class);
//Sends login name to activity k
k.putExtra("loginName", login.getText().toString());
//login is the EditText variable name for the login text field
startActivity(k);

在这里,我检索了额外的数据,并按说明尝试使用它:
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class ProfileActivity extends Activity {

TextView helloString;

@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.home);
Bundle extras = getIntent().getExtras();

//Getting the hello text string
helloString = (TextView)findViewById(R.id.textHello);
String loginName = extras.getString("loginName");
helloString.setText("¡Hello, " + loginName + "!");

}

}

如果我在这两行中添加注释,则可以避免崩溃:
String loginName = extras.getString("loginName");
helloString.setText("¡Hello, " + loginName + "!");

不过,我不确定问题是否确实存在,我认为这可能与第一个 Activity 发送的数据类型与第二个 Activity 获取的数据类型不匹配,但仍然没有尝试一些解决方法后的线索。

提前致谢。

编辑:

我实际上发现我可能与在名为profileActivity.class的 Activity 中显示文本时调用mainActivity.class有关,问题是,profileActivity在mainActivity中显示为选项卡所以我真的不知道该如何处理。

编辑2:

所以我终于自己解决了,对于感兴趣的人,我只是将数据发送到MainActivity.class
Intent k = new Intent(this, MainActivity.class);

//Sends login name to activity k
k.putExtra("loginName", login.getText().toString());
startActivity(k);

并且,在Main Activity中,调用ProfileActivity将其设置为选项卡时:
//Profile tab
intent = new Intent(this, ProfileActivity.class);
Bundle extras = getIntent().getExtras();
intent.putExtra("loginName", extras.getString("loginName"));
spec = mTabHost.newTabSpec("home")
.setIndicator("Home", res.getDrawable(R.drawable.profile_icon))
.setContent(intent);
mTabHost.addTab(spec);

问题解决了,谢谢大家的帮助。

最佳答案

您的意图是引用MainACtivity.class,并且尝试在ProfileActivity中获取其他内容。如果这是您的流程,请尝试将MainActivity.class更改为ProfileActivity.class。请交叉检查您的 Activity 流程。

希望能帮助到你。

Intent k = new Intent(this, ProfileActivity.class);
//Sends login name to activity k
k.putExtra("loginName", login.getText().toString());
//login is the EditText variable name for the login text field
startActivity(k);

关于android - 在 Activity 之间发送数据时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10180254/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com