0
我試圖從我的onActivityResult方法檢索一些信息,在我的情況是一個圖片用戶已選擇一個子活動,我相信工作正常,我有問題是當我試圖分配該圖片(以字節數組的形式)到我在主要活動中的變量。我試圖在onClick方法中使用該變量,但由於某種原因,當我嘗試使用該變量時,它的值始終爲空。 會發生什麼? 這裏是代碼:Android,爲onActivityResult方法中的變量賦值?
poptions.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> arg0, View view, int pos, long id) {
final Intent i;
switch(pos){
// Adjunta imagen
case 0:
i = new Intent(Intent.ACTION_GET_CONTENT);
i.setType("image/jpeg");
startActivityForResult(i,1);
//Toast.makeText(view.getContext(), "MIERDA!!", 30).show();
break; // more cases below, not relevant to my question....
}
}
});
我onActivityResult方法:
編輯:解決的辦法是改變
if(resultCode==1)
到:
if(resultCode==RESULT_OK)
結果,RESULT_OK實際上等於-1。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent pic){
super.onActivityResult(requestCode, resultCode, pic);
if(resultCode==1){
Uri selectedpic = pic.getData();
try {
Bitmap bitmappic = MediaStore.Images.Media.getBitmap(
this.getContentResolver(),
selectedpic);
ByteArrayOutputStream picstream = new ByteArrayOutputStream();
bitmappic.compress(Bitmap.CompressFormat.JPEG, 100, picstream);
setPicture(picstream.toByteArray());
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
我onClickListener方法在那裏我嘗試使用是我setPicture方法上面設置的圖片。
btnSend.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
Bundle usrpostData = new Bundle();
if(txtMsg.getText().toString().equals("")){
Toast.makeText(v.getContext(), "MSG", 10).show();
}else{
String msg = txtMsg.getText().toString();
usrpostData.putString("message", msg);
if(getPicture()==null){
Toast.makeText(v.getContext(),"NULL",30).show();
}else{
try {
// do something with the picture...
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
});
正如你可以看到我把一個小測試,和Getpicture中方法始終返回null,我試圖.equals而不是==,它使我的應用程序崩潰。 任何幫助表示讚賞
你可以發表什麼你調用btnSend.onClickListener()的Activity方法嗎?如果它在onCreate()中,那麼保存該圖片的原始Activity實例已被銷燬。 – hopia 2012-04-09 03:49:49
@hopia是的,我的btnSend.onClickListener()在我的onCreate()方法中,在我稱之爲子活動的主要活動中。 – Slacker616 2012-04-09 03:55:01
只是想確認一下,你確定在onActivityResult()中檢查了正確的參數嗎?我認爲它應該是requestCode。 resultCode通常會返回RESULT_OK,RESULT_CANCEL等,認爲您需要檢查requestCode。沒有什麼與尿查詢有關:( – Shubhayu 2012-04-09 04:51:41