我在从Android中的相册导入图片时遇到问题,因为onActivityResult()从不调用该方法.
这是我写的代码(从片段调用而不是活动):
Intent galleryIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
getActivity().startActivityForResult(galleryIntent, PICK_IMAGE);
Run Code Online (Sandbox Code Playgroud)
顺便说一句,我已经定义了onActivityResult()但它永远不会触发:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.d(TAG, "onActivityResult"); // not printed
}
Run Code Online (Sandbox Code Playgroud)
知道这有什么问题吗?
谢谢!
到目前为止,我成功使用了startActivity函数,现在我需要使用startActivityResult,我遇到了问题.
使用此函数时,我希望启动的活动正确启动,但似乎永远不会调用onActivityResult函数.
以下是我在FriendPicker活动中的代码,以表示MoodPicker活动:
Intent intent = new Intent(FriendPicker.this, MoodPicker.class);
startActivityForResult(intent, 2);
Run Code Online (Sandbox Code Playgroud)
这是我在MoodPicker活动中的代码:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent)
{
super.onActivityResult(requestCode, resultCode, intent);
Log.i("in OnActivityResult", "Activity Result");
switch (requestCode)
{
case 2:
Log.i("in OnActivityResult", "Activity Resut 2");
break;
}
}
Run Code Online (Sandbox Code Playgroud)
并且我的日志文件中没有任何内容(我当然检查了我的日志文件是否正常工作并使用文本视图输出进行双重检查).
有没有我忘记在Manifest文件中声明的内容?
提前致谢.
当用户单击按钮时,它想要调用对话框 - 该对话框包含ListView中的产品列表.用户选择产品后,它应该进入上一级活动.
我已经完成了使用startActivityForResult ().
存在一些问题.我的调用活动处于正常选项卡活动中,即Tab活动组中的常规选项卡活动.
Actualy我想在drrop down(Spinner).在我的scanerio我无法得到上下文.它是awalys给 Android Spinner Error : android.view.WindowManager$BadTokenException: Unable to add window
所以我改变了我的设计:当用户点击它时,它会在ListView中加载产品列表.选择产品后,它会回到之前的活动.
这里呼叫活动:
//Click Product button
l_prod.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent showContent = new Intent(LineDiscountActivity.this,ListProductActivity.class);
Bundle bundle = new Bundle();
bundle.putString("Activity", "LineDiscountActivity");
bundle.putString("RetailerName", retailerName);
bundle.putString("RetailerCode", retailerCode);
showContent.putExtra("discountProduct", discountList);
showContent.putExtras(bundle);
getParent().startActivityForResult(showContent, 5);
}
});
Run Code Online (Sandbox Code Playgroud)
我的接收器活动:
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
Object o = this.getListAdapter().getItem(position);
String book = …Run Code Online (Sandbox Code Playgroud) 永远不会调用我的onActivityResult方法.我正在使用android 2.2
我正在使用Tabhost,其中TabHosts包含包含单个活动的TabGroup.
我的一项个人活动运行以下意图
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,
"Select Picture"), 0);
Run Code Online (Sandbox Code Playgroud)
这加载我的画廊应用程序,我使用默认的Android库选择一个图像,当我返回我的onActivityResult时,不称为我的活动.
它看起来像这样 - 我给了一个断点if(resultCode == 0),所以现在,我的onActivityResult的逻辑应该不重要
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == 0) {
if (requestCode == 0) {
Uri selectedImageUri = data.getData();
//OI FILE Manager
filemanagerstring = selectedImageUri.getPath();
//MEDIA GALLERY
selectedImagePath = getPath(selectedImageUri);
//DEBUG PURPOSE - you can delete this if you want
if(selectedImagePath!=null)
System.out.println(selectedImagePath);
else System.out.println("selectedImagePath is null");
if(filemanagerstring!=null)
System.out.println(filemanagerstring);
else System.out.println("filemanagerstring is null");
//NOW …Run Code Online (Sandbox Code Playgroud)