gpt4 book ai didi

android - getStringExtra() 返回 null

转载 作者:行者123 更新时间:2023-11-29 16:45:39 24 4
gpt4 key购买 nike

我尝试通过 Intent 向函数发送额外的字符串数据,但我收到的是空值。

这里是 intent.put:

 private void takePicFromGallery(String nameOfButton) {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
**intent.putExtra(NAME_OF_BUTTON, nameOfButton.toString());**
startActivityForResult(intent.createChooser(intent, "choose picture"), PICK_FROM_GALLERY);

这里是获取:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
String nameOfButton = data.getStringExtra(NAME_OF_BUTTON);
switch (nameOfButton) {
case "ibMainPicture": {
ibMainPicture.setImageBitmap(bitmap);
break;
}
case "imageButton1": {
imageButton1.setImageBitmap(bitmap);
break;
}

最佳答案

在 onActivityResult 期间收到的 Intent 与您在 takePicFromGallery 方法中创建的 Intent 不同。您启动的 Intent 被打开的 Activity 使用,并将新的 Intent 发送回您的应用程序。

选项 1(首选选项):

private static final int IB_MAIN_PICTURE_REQUEST_CODE = 524;
private static final int IMAGE_BUTTON_1_REQUEST_CODE = 785;

private void takePicFromGallery(String nameOfButton) {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
if(nameOfButton.equals("ibMainPicture")) {
startActivityForResult(intent.createChooser(intent, "choose picture"), IB_MAIN_PICTURE_REQUEST_CODE);
else if(nameOfButton.equals("imageButton1") {
startActivityForResult(intent.createChooser(intent, "choose picture"), IMAGE_BUTTON_1_REQUEST_CODE);
}

然后在得到结果时:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultCode == Activity.RESULT_OK) {
if(requestCode == IB_MAIN_PICTURE_REQUEST_CODE) {
ibMainPicture.setImageBitmap(bitmap);
} else if(requestCode == IMAGE_BUTTON_1_REQUEST_CODE) {
imageButton1.setImageBitmap(bitmap);
}
}
}

选项 2:

private static String lastButtonClicked = null;

private void takePicFromGallery(String nameOfButton) {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
lastButtonClicked = nameOfButton.toString();
startActivityForResult(intent.createChooser(intent, "choose picture"), PICK_FROM_GALLERY);
}

然后在得到结果时:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if(lastButtonClicked == null || resultCode != Activity.RESULT_OK || requestCode != PICK_FROM_GALLERY) {
return;
}
switch (lastButtonClicked) {
case "ibMainPicture": {
ibMainPicture.setImageBitmap(bitmap);
break;
}
case "imageButton1": {
imageButton1.setImageBitmap(bitmap);
break;
}
...
}

关于android - getStringExtra() 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48410839/

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