【问题标题】:Pass object in Intent在 Intent 中传递对象
【发布时间】:2014-08-24 21:47:59
【问题描述】:

我想通过 Intent 传递对象:

public class First extends Activity implements Serializable {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Button here = (Button) findViewById(R.id.here);

        here.setOnClickListener(new OnClickListener() {
            public void onClick(View arg0) {
                Intent intent = new Intent(getApplicationContext(), MyClass.class);
                Test test = new Test();
                intent.putExtra("test", test);  
                startActivity(intent);
            }
        });
    }

}

但这符合intent.putExtra("test", test);返回错误:

Intent 类型中的 putExtra(String, boolean) 方法不是 适用于参数(字符串、测试)

我该怎么做?

【问题讨论】:

  • Test 类是否可序列化?
  • @ShobhitPuri 我不知道。如何查看?

标签: java android


【解决方案1】:

把Test的类头改成这个

public Test implements Parcelable ...

使用下一个示例并创建 Test 类来正确实现 Parcelable。 Parcelable Example Parcelable Android Developers SDK

它应该可以工作。,

ok new Solution 改成

public Test implements Serializable ...

无需实现任何东西

【讨论】:

  • 您能否使用已实施的测试类更新您的答案。
  • 不是班级测试自己的活动,请再次阅读答案。使用可序列化
  • 更新你的代码伙伴是不可能的,另外写下测试类。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-20
  • 2012-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-03
相关资源
最近更新 更多