Android 标记中的数据未正确传递到新活动
我有一个方法,它获取标签数据并将其发送到另一个活动。Android 标记中的数据未正确传递到新活动,android,android-activity,Android,Android Activity,我有一个方法,它获取标签数据并将其发送到另一个活动。 当我在调试器中单步执行此方法时,我可以看到值是预期值 public void ShowView(TextView tv, ImageView iv) { Intent intent = new Intent(this, DisplaySeekAgain.class); String text_tag = tv.getTag().toString(); String image_tag = iv.getTag().toS
当我在调试器中单步执行此方法时,我可以看到值是预期值
public void ShowView(TextView tv, ImageView iv) {
Intent intent = new Intent(this, DisplaySeekAgain.class);
String text_tag = tv.getTag().toString();
String image_tag = iv.getTag().toString();
intent.putExtra(EXTRA_NAME, text_tag); //example: "Joe Brown"
intent.putExtra(EXTRA_IMAGE, image_tag); //example: "profilePic1"
startActivity(intent);
}
预期值很好:
- 文本标签:“乔·布朗”
- 图像标签:“profilePic1”
public class DisplaySeekAgain extends AppCompatActivity {
private GoogleApiClient client;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
String message = intent.getStringExtra(MainActivity.EXTRA_NAME); //example: "profilePic1"
String image = intent.getStringExtra(MainActivity.EXTRA_IMAGE); //example: "profilePic1"
预期值错误:
- message=“profilePic1”
- image=“profilePic1”
在我的代码中是否有我正在做的事情可能导致它 预期值很好:
text\u tag=“Joe Brown”
image\u tag=“profilePic1”
intent.putExtra(EXTRA_NAME, text_tag); //example: "Joe Brown"
intent.putExtra(EXTRA_IMAGE, image_tag); //example: "profilePic1"
但是,
String message = intent.getStringExtra(MainActivity.EXTRA_NAME); //example: "profilePic1"
然后,
EXTRA\u NAME.equals(EXTRA\u IMAGE)
,您只需要输入一个额外的值,因此会覆盖以前设置的任何其他值。putExtra只允许您一次传递一个字符串。您需要使用Bundle
来允许将多个字符串
传递给您的下一个活动。每次打电话时:
intent.putExtra(额外名称、文本标记);
intent.putExtra(额外图像、图像标签)代码>
您正在覆盖intent.putExtra(额外名称、文本标记)代码>带有意图.putExtra(额外图像、图像标签)代码>
下面的代码应该可以解决这个问题
public void ShowView(TextView tv, ImageView iv) {
String text_tag = tv.getTag().toString();
String image_tag = iv.getTag().toString();
Intent intent = new Intent(this, DisplaySeekAgain.class);
Bundle extras = new Bundle();
extras.putString(EXTRA_NAME, text_tag); //example: "Joe Brown"
extras.putString(EXTRA_IMAGE, image_tag); //example: "profilePic1"
intent.putExtras(extras);
startActivity(intent);
}
public class DisplaySeekAgain extends AppCompatActivity {
private GoogleApiClient client;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle extras = getIntent().getExtras();
String message = extras.getString(MainActivity.EXTRA_NAME); //example: "profilePic1"
String image = extras.getString(MainActivity.EXTRA_IMAGE); //example: "profilePic1"
如果您实际显示了EXTRA\u NAME
和EXTRA\u IMAGE
,则会更容易提供帮助。但它们似乎完全相同。应该有两个变量:public static final String EXTRA\u NAME=“EXTRA NAME”
和public static final String EXTRA\u IMAGE=“EXTRA IMAGE”
。检查这两个字符串的值,值必须不同。