[英]Android, assigning value to variables in onActivityResult method?
我正在嘗試從我的 onActivityResult 方法中檢索一些信息,在我的例子中是用戶在子活動中選擇的圖片,我相信它工作正常,我遇到的問題是當我嘗試分配該圖片時(在字節數組的形式)到我主要活動中的變量。 我正在嘗試在 onClick 方法中使用該變量,但出於某種原因,當我嘗試使用該變量時,它的值始終為 null。可能會發生什么? 這是代碼:
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 而不是 ==,這讓我的應用程序崩潰了。 任何幫助表示贊賞
解決方案是改變
if(resultCode==1)
到:
if(resultCode==RESULT_OK)
事實證明,RESULT_OK 實際上等於 -1。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.