我是 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/