android - 如何在 Android 中一一显示来自数据库的字符串响应?

标签 android soap android-view

我是 android 的新开发者。我正在我的应用程序中使用 soap 对象与 .net 数据库服务进行通信。我正在从数据库服务器获取字符串形式的响应。但我的 Intent 是,当我从数据库服务器获取一个字符串作为响应时,然后立即将其视为 TextView ,类似地,我正在获取编码字符串的图像。如何立即获取响应作为 View 。我写的代码如下:

String xml="<spGetUserMessages><SearchLocation></SearchLocation><LoginUserID>"+Userid+"</LoginUserID></spGetUserMessages>"; 

我正在将请求作为 XML 发送到数据库服务器

数据库服务器的响应在列表中:

 List<MessageClass> response=new ParseXml().getUserMessages(new Generic().getMessages(xml));

  String messages=new String[response.size()];

  for(int i=0;i<response.size();i++)
         {

           //the response values are saved in messages array
             messages[i]=response.get(i).getmessage();

               } 

我已经在该类中编写了一个基本适配器类,我们有一个方法 getView 我已经实现如下:

    public View getView(int position, View convertView, ViewGroup parent) {
    View vi=convertView;


    if(convertView==null)
        vi = inflater.inflate(R.layout.item, null);



     TextView text=(TextView)vi.findViewById(R.id.text);;
     ImageView image=(ImageView)vi.findViewById(R.id.image);

     Log.v("rrrrrrrrrr", "rrrrrrrr"+messages[position]);

     text.setText(messages[position]);
    }

根据上面的代码,我一次显示所有消息。但在这种情况下,响应需要时间然后我得到黑屏。在这里,我的 Intent 是当我收到一个字符串响应时,我将在下一次类似地将该字符串作为 TextView 查看,直到响应大小完成。

最佳答案

您可以做的是在不等待响应的情况下显示 Listview,并从后台线程将响应添加到 messages 并调用

mAdapter.notifyDatasetChanged();

这是 LazyLoading 的概念,我希望它能起作用

更新

runOnUiThread(new Runnable() {
public void run() {
    adapter.notifyDataSetChanged();
}
});

关于android - 如何在 Android 中一一显示来自数据库的字符串响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7397059/

相关文章:

android - 列表占用太多空间,无法查看带有按钮的 EditText

java - 在真实设备中膨胀类 CoordinatorLayout 时出错,但模拟器工作

android - 如何从android中的广播接收器中接收到的 Intent 中获取应用程序名称

android - Base64 encodeBytes - 内存不足异常

php - Magento V2 API 覆盖产品信息模型 V2(属性未显示)

soap - 真正的 SOAP 互操作性是神话吗?

c# - 如何捕获本地主机上生成的 SOAP 请求?

android - Android 中的 keyCode 和 event.getKeyCode 有什么区别?

android - 如何从摘要生成 PKCS#7 签名?

android - MI 和 OPPO 设备的 OPEN MOBILE API 问题