startActivityForResult 未运行
Posted
技术标签:
【中文标题】startActivityForResult 未运行【英文标题】:startActivityForResult is not run 【发布时间】:2014-10-31 20:31:28 【问题描述】:为什么onActivityResult
没有运行?
有人可以帮忙吗?
我只有类名是MainActivity
这是我的代码
public class MainActivity extends Activity
public static final int CROP = 1;
private static final String TAG = MainActivity.class.getCanonicalName();
private ImageView imgView;
private Button selectBtn;
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imgView = (ImageView)findViewById(R.id.imgView);
hasilET = (EditText)findViewById(R.id.hasilET);
selectBtn = (Button)findViewById(R.id.selectBtn);
selectBtn.setOnClickListener(new ClickSelect());
public class ClickSelect implements View.OnClickListener
@Override
public void onClick(View v)
// TODO Auto-generated method stub
Log.v(TAG, "CLICK");
Intent i = new Intent(Intent.ACTION_GET_CONTENT);
i.setType("image/*");
i.putExtra("crop", "true");
i.putExtra("aspectX", 0);
i.putExtra("aspectY", 0);
i.putExtra("outputX", 200);
i.putExtra("outputY", 150);
i.putExtra("return-data", true);
startActivityForResult(i, CROP);
public void onActivityResult(int requestCode, int resultCode, Intent data)
Log.v(TAG, "crop");
Bitmap bmp;
if(requestCode==1)
if(data != null)
Bundle extras = data.getExtras();
bmp = extras.getParcelable("data");
imgView.setImageBitmap(bmp);
【问题讨论】:
【参考方案1】:在快速查看您的代码后,请注意:
似乎是正确的,如果你替换你的 CROP 会发生什么
startActivityForResult(i, CROP);
有数字吗?在
中使用相同的数字 if(requestCode==CROP)
也许删除这一行:
i.putExtra("crop", "true")
【讨论】:
我已经用 1 改变了,但仍然没有运行,你能帮帮我吗? 你在没有 i.putExtra("crop", "true") 的情况下尝试过吗 - 这就是我的问题:D 在没有i.putExtra("crop", "true")的情况下调试,没有crop界面。我认为startActivityForResult
有问题【参考方案2】:
您应该在 MainActivity
类中覆盖 onActivityResult()
将 onActivityResult()
从类 ClickSelect
移动到 MainActivity
使用此示例:Example
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
if (requestCode == CROP)
if (resultCode == RESULT_OK)
...
【讨论】:
这是我覆盖onActivityResult时的错误:描述资源路径位置类型MainActivity.ClickSelect类型的onActivityResult(int, int, Intent)方法必须覆盖或实现超类型方法MainActivity.java /PETIv2/ src/com/petiv2 第 110 行 Java 问题 将 onActivityResult() 从 ClickSelect 类移动到 MainActivity 它不起作用,void 是变量 onActivityResult 的无效类型。又报错了 如何在单个类中使用意图? 发布你的 MainActivity,我会看看它。无论如何,您的 onActivityResult 不应该在公共类 ClickSelect 实现 View.OnClickListener 中。它应该是扩展 Activity 基类的 MainActivity 的一部分。至少当您单击按钮时,您的图库会启动吗?以上是关于startActivityForResult 未运行的主要内容,如果未能解决你的问题,请参考以下文章
Fragment的startActivityForResult和Activity的startActivityForResult的区别
如何在 onActivityResult 中调用 startActivityForResult?
startActivityForResult和setResult详解