我打了一个外部的API返回JSON数据(新的DVD标题)。 我能parsing出JSON,并列出每个DVD标题和其他DVD信息到一个ListView就好了。 我也能够为原始数据(标题string)设置一个onListItemClick方法。 我最终为onListItemClick方法写了类似的东西: 需要注意的是,productArray是一个由另一个包含JSONObjects数组的方法设置的类var。 protected void onListItemClick(ListView l, View v, int position, long id) { super.onListItemClick(l, v, position, id); Intent i = new Intent(DvdListingActivity.this, MovieProductActivity.class); try { JSONObject jsonObj = productArray.getJSONObject(position); i.putExtra("mTitle", jsonObj.getJSONObject("Title").opt("val").toString()); i.putExtra("mRelDate", jsonObj.getJSONObject("RelDate").opt("val").toString()); i.putExtra("mDesc", jsonObj.getJSONObject("Desc").opt("val").toString()); i.putExtra("mRating", jsonObj.getJSONObject("MPAA").getJSONObject("Rating").opt("val").toString()); i.putExtra("mActors", jsonObj.getJSONObject("Actors").opt("val").toString()); i.putExtra("mImage", jsonObj.getJSONObject("Image").opt("val").toString()); startActivity(i); } catch (JSONException e) { // TODO Auto-generated catch block […]
所以我得到了我的AccessibilityService使用下面的代码: @Override public void onAccessibilityEvent(AccessibilityEvent event) { if (event.getEventType() == AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED) { List<CharSequence> notificationList = event.getText(); for (int i = 0; i < notificationList.size(); i++) { Toast.makeText(this.getApplicationContext(), notificationList.get(i), 1).show(); } } } 阅读创build通知时显示的文本(1)可以正常工作 。 唯一的问题是,我还需要用户打开通知栏时显示的(3)的值。 (2)对我来说并不重要,但是知道如何读出它是很好的。 正如你可能知道的,所有的值都可以不同。 那么,我怎样才能读出(3) ? 我怀疑这是不可能的,但我的notificationList似乎只有一个条目(至less只有一个吐司显示)。 非常感谢! /编辑:我可以提取通知包裹 if (!(parcel instanceof Notification)) { return; } final Notification notification = (Notification) parcel; […]
我目前在我的Java项目中使用了优秀的AutoParcel ,这有助于创buildParcelable类。 现在,我为下一个项目考虑的Kotlin具有这种数据类的概念,它自动生成equals,hashCode和toString方法。 有没有一种方便的方法来创build一个Kotlin数据类Parcelable方便的方式(没有手动实现的方法)?
我有一个实现Parcelable接口的类: class A implements Parcelable { } 我有另一个类B包含一个A对象作为一个实例variables。 在B类的writeToPacel ,我想将对象B写入Parcel : class B implements Parcelable{ public void writeToParcel(Parcel dest, int flags) { dest.write ??? } } 我怎样才能写和读呢?
关于我的代码示例,如果一个Locable的variables为null,我该怎么办? 在例子中,现在如果l.getZoom()返回null,我得到了NullPointerException。 @Override public void writeToParcel(Parcel parcel, int arg1) { parcel.writeInt(count); for(Locable l:locableArr){ parcel.writeInt(l.getOriginId()); parcel.writeInt(l.getLocableType()); parcel.writeInt(l.getZoom()); parcel.writeDouble(l.getLatituda()); parcel.writeDouble(l.getLongituda()); parcel.writeString(l.getTitle()); parcel.writeString(l.getSnipet()); } } 谢谢!
我得到了一个Parcelable的实现工作的单一类不涉及inheritance。 我有问题搞清楚实现接口的最佳方式,当它来inheritance。 比方说,我得到这个: public abstract class A { private int a; protected A(int a) { this.a = a; } } public class B extends A { private int b; public B(int a, int b) { super(a); this.b = b; } } 问题是,为B实现Parcelable接口的推荐方式(在A?中是如何实现的?)
我有一个string(键,值)的通用映射,这个字段是一个Bean的一部分,我需要可以parcelable。 所以,我可以使用Parcel#writeMap方法。 API Doc说: 请使用writeBundle(Bundle)。 在当前dataPosition()中将Map平铺到包中,如果需要,则增加dataCapacity()。 Map键必须是String对象。 Map值是使用writeValue(Object)写入的,并且必须遵循这个规范。 强烈build议使用writeBundle(Bundle)而不是此方法,因为Bundle类提供了一个types安全的API,可以避免编组时的神秘types错误。 所以,我可以迭代Map中的每一个条目,把它放到Bundle中,但是我仍然在寻找一个更聪明的方法。 我缺lessAndroid SDK中的任何方法吗? 目前我这样做: final Bundle bundle = new Bundle(); final Iterator<Entry<String, String>> iter = links.entrySet().iterator(); while(iter.hasNext()) { final Entry<String, String> entry =iter.next(); bundle.putString(entry.getKey(), entry.getValue()); } parcel.writeBundle(bundle);
我有麻烦让我的课程Parcelable 。 麻烦的是,我正试图在类中写入一个ArrayList<Parcelable>对象的成员。 ArrayList是Serializable ,列表中的对象( ZigBeeDev )是ZigBeeDev 。 这是相关的代码: package com.gnychis.coexisyst; import java.util.ArrayList; import java.util.Iterator; import android.os.Parcel; import android.os.Parcelable; public class ZigBeeNetwork implements Parcelable { public String _mac; // the source address (of the coordinator?) public String _pan; // the network address public int _band; // the channel ArrayList<Integer> _lqis; // link quality indicators (to […]
有没有人知道这个Parcelable的方法在哪里/何时被调用? @Override public int describeContents() { return 0; } 它必须被覆盖。 但是,我应该考虑做一些有用的东西吗?
据我所知, Bundle和Parcelable属于Android执行序列化的方式,例如用于在活动之间传递数据。 但是我想知道,如果在将业务对象的状态保存到内部存储器的情况下使用Parcelable而不是经典序列化有什么好处? 它会比传统方式更简单还是更快? 我应该在哪里使用经典的序列化和哪里更好地使用捆绑?