gpt4 book ai didi

java - android无法从 Intent 中获取字节数组

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:06:49 34 4
gpt4 key购买 nike

我正在尝试将一个字节 [] 从一个 Activity 发送到另一个 Activity 。在接收 Activity 中,byte[] 在获得 intent extras 后似乎为空。有什么想法吗?

谢谢。

Button save = (Button)findViewById(R.id.save);
save.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {

touchView.isSaved = true;
Bundle bundle = new Bundle();
bundle.putByteArray("byteArr", touchView.data);
Intent intent = new Intent(mContext, SavePic.class);

intent.putExtra(bundle );



startActivity(intent);


}}) ;

.

 public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.savepic);


final EditText edittext = (EditText) findViewById(R.id.edittext);
edittext.setText("");

edittext.setOnKeyListener(new OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
// If the event is a key-down event on the "enter" button
if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
(keyCode == KeyEvent.KEYCODE_ENTER)) {
// Perform action on key press

Bundle extras = getIntent().getExtras();
byte [] arr = extras.getByteArray("byteArr");
if(arr != null){
Log.e("xxxxxx", "********* arr not null");
}else{
Log.e("xxxxxx", "********* arr is null");
}
final Bitmap mCBitmap2 = BitmapFactory.decodeByteArray(arr, 0, arr.length);

.

[更新]我已经更改了键值,所以它们不是相同的数据/bytrArr,而且现在的 Intent 只是传递一个 Bundle

最佳答案

键的值不是你的问题。您检索数据的方式与放入数据的方式不同。

在代码的第一部分中,您将一个 byte[] 放入 Bundle 中,然后将该 Bundle 放入 Intent extras 中。这意味着键“data”处的 EXTRA 是一个 Bundle,而不是一个 byte[]。您无需以这种方式插入额外内容。只需执行 intent.putExtra("byteArr", touchView.data) 即可将 byte[] 作为 Extra 插入。

这样做,您将能够在代码的第二部分使用 getIntent().getByteArrayExtra("byteArr") 取回您的 byte[]。

最后,作为旁注,如果您确实有多个 extras 想要通过一个调用应用,您可以将每个都放入一个 Bundle 中,然后调用 Intent.putExtras(bundle) 来将 Bundle 中的所有数据单独放入 Intent 中。但这与将该 Bundle 添加为额外本身不同。

HTH

关于java - android无法从 Intent 中获取字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7392325/

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