【问题标题】:Send Android View from server to client将 Android View 从服务器发送到客户端
【发布时间】:2011-08-15 12:30:33
【问题描述】:

我想将一个 (Text)View 元素从服务器应用程序(='normal',非 Android Java)发送到手机上的 Android 应用程序并在那里显示。 在服务器上像这样创建它...

TextView tv=new TextView(Client.myClient);

... 给我这个错误:

Exception in thread "main" java.lang.RuntimeException: Stub!

myClientClient 中是这样定义的:

public static Client myClient;.

onCreate() 上的Client 我写了myClient=this;

Server 可以访问所有 Client 类,所以这不是问题。)

我做错了什么?我可以用另一个上下文而不是客户端创建 TextView,发送它,然后在客户端上显示它吗? (后来我想发送任意视图,这就是为什么我不只发送 TextView 的字符串。) 提前非常感谢!

【问题讨论】:

  • 您应该只从服务器发送表示String 的文本,并在android 设备上创建TextView。你在做一件奇怪的事情
  • 只考虑这个问题你当然是对的,但我希望能够将每个可以想象的用户界面发送到手机。使用 TextView 只是一个简单的例子。

标签: android view client send


【解决方案1】:

不确定你能做到这一点:据我所知,Context 不可序列化或不可转让。您也许能够提出一种可用的描述语言(也许传输完整的 XML 并在客户端上重新解析它?)但不确定您是否可以开箱即用地执行上面描述的操作。

【讨论】:

  • 感谢您的快速答复!上下文不可序列化,已经尝试过了。好的,我将研究如何传输 XML - 或者您是否立即知道如何执行此操作?
  • 您只需像创建布局一样创建 XML,然后使用 LayoutInflater 将其转换为视图。
  • 已经花了很长时间试图让它工作。我现在可以将 XML 文件转换为视图,问题是从何处获取此 XML 文件。由于我的服务器程序是普通的 Java,我不能只将 XML 文件放在那里并通过 R.layout.* 访问它。我已经尝试创建一个新的 Android 类,然后通过 R.layout.* 访问它的 XML 文件之一并将其转换为视图,然后让服务器接受这个,但我不断收到这个“存根”错误。
  • 啊,Android 在编译时将项目中的 XML 文件转换为不同的格式:原始 XML 字节不是在膨胀视图时使用的。您必须跳过特殊的箍来从其中包含 XML 的文件生成视图,我不确定这些箍是什么。
  • 试图通过在客户端膨胀 XML 文件,将其发送到服务器并返回到客户端来解决它。 (我想我以后可能会从另一个模拟客户端发送视图。)但是现在我收到了这个错误:writing aborted; java.io.NotSerializableException: android.widget.RelativeLayout 这是否意味着无法序列化 RelativeLayout 或任何布局?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多