【问题标题】:GetView + Intent Param Object ErrorGetView + Intent Param 对象错误
【发布时间】:2017-07-31 09:50:59
【问题描述】:

我现在有这个问题:java.lang.RuntimeException: Parcelable 遇到IOException writing serializable object .. Filho 类实现了可序列化。如何解决?

public View getView(int position, View view, ViewGroup parent)
{
    final Filho filhoPosition = this.listaFilhos.get(position);
    view = LayoutInflater.from(this.context).inflate(R.layout.lista_filho,null);

    TextView textViewNomeFilho = (TextView) view.findViewById(R.id.textViewNomeFilho);
    TextView textViewTelefoneFilho = (TextView) view.findViewById(R.id.textViewTelefoneFilho);
    ImageView imageViewFotoFilho = (ImageView)  view.findViewById(R.id.imageViewFotoFilho);

    textViewNomeFilho.setText(filhoPosition.getNome());
    textViewTelefoneFilho.setText(filhoPosition.getTelefone());
    imageViewFotoFilho.setImageBitmap(filhoPosition.getFoto());

    final ImageButton imageButtonConfigFilho = (ImageButton) view.findViewById(R.id.imageButtonConfigFilho);
    imageButtonConfigFilho.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View v){

            filho = new Filho(filhoPosition.getIdFilho(),filhoPosition.getNome(),filhoPosition.getTelefone(),filhoPosition.getFoto(),filhoPosition.getLoginConfig());

            Intent it = new Intent(context, CadastrarFilhoActivity.class);
            it.putExtra("filho",filho);
            context.startActivity(it);
        }
    });
    return view;
}

【问题讨论】:

  • Filho 中实现Parcelable。使用 android studio 将有助于无需自己编写代码 IDE 将为您生成东西

标签: android listview android-intent adapter getview


【解决方案1】:

使Filho类实现Serializable。这是一个常见的问题

那就是去Filho类并实现Serializable

public class Filho class implements Serializable

编辑

像这样使用你正在使用的意图putExtra()

Intent it = new Intent(context, CadastrarFilhoActivity.class);
Bundle bundle = new Bundle();
bundle.putSerializable("filho",filho);
it.putExtras(bundle);

并通过CadastrarFilhoActivity.class 解决这个问题

Intent intent = this.getIntent();
Bundle bundle = intent.getExtras();
Filho filho=(Filho)bundle.getSerializable("filho");

【讨论】:

  • 该类已经在实现序列化但给出了这个错误
  • 我最终发现问题是因为它在子类中有一个 Bitmap,当我将它作为 null 放在它工作的对象的实例中但是当传递 Bitmap 参数时发生错误跨度>
  • @LeonardoInhoqui 然后您可以将位图转换为 base64 并通过
  • 我通过将私有 Bitmap 照片与瞬时 Bitmap 照片交换来解决了这个问题。坦克
  • @LeonardoInhoqui 很高兴听到您找到了解决方案。但是不要感谢我,兄弟。很高兴为您提供帮助。
【解决方案2】:

如果我将 4 参数作为位图,如 null 作品,由于某种原因,位图字段会出现此问题,因为我对 java 和 android 并不陌生,我不知道如何解决

it.putExtra("filho",new Filho(filhoPosition.getIdFilho(),filhoPosition.getNome(),filhoPosition.getTelefone(),filhoPosition.getFoto(),filhoPosition.getLoginConfig()));

【讨论】:

  • 我是新的 android 但我会寻找另一种方式
猜你喜欢
  • 2012-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多