gpt4 book ai didi

android - 如何处理在 Android 中实现惰性列表功能的动态列表?

转载 作者:行者123 更新时间:2023-11-30 04:44:34 25 4
gpt4 key购买 nike

我正在开发一个与聊天相关的应用程序。我的数据库中有大约 4500 个条目,这个数据库正在显示用户图像和聊天消息。我在代码文件下面实现了更多时间来显示列表中加载的所有信息的任何建议。

代码文件:

    // Handle the messages and post messages to list view

private void handlerMessage(final String messageType, final int dis)
{
myProgressDialog = ProgressDialog.show(Shout1.this,"","Loading...",true);
new Thread()
{

public void run()
{
try {
String xml;
Userid=getSharedPreferences("MyLoginInfo", 0).getString("user_id", "");
if(messageType.length()==0)
{
xml="<spGetUserMessages><SearchLocation></SearchLocation><LoginUserID>"+Userid+"</LoginUserID></spGetUserMessages>";
messages =parse.GetGetUserMessages(dataparsing.ILGetUserMessages(xml));
Message msg = myHandler.obtainMessage();
myHandler.sendMessage(msg);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

myProgressDialog.dismiss();
}
}.start();
}

// Handle the messages

private Handler myHandler = new Handler()
{
public void handleMessage(Message msg)
{
Log.v("Shout=====","inhandleMessage ======="+messages.size());
if(messages.size()==0)
{((LinearLayout)findViewById(R.id.LinearlayoutMessage)).removeAllViews();
Toast.makeText(Shout1.this, "No messages in that Location", Toast.LENGTH_SHORT).show();
}
else
{
((LinearLayout)findViewById(R.id.LinearlayoutMessage)).removeAllViews();
addElements(messages);
}
}

};
//add messagess to List
protected void addElements(final List<MessageClass> messages2)
{
((LinearLayout)findViewById(R.id.LinearlayoutMessage)).removeAllViews();
LinearLayout ll5=new LinearLayout(this);
ll5.setBackgroundColor(Color.WHITE);
ll5.setOrientation(1);

for(int i=0;i<messages2.size();i++)
{
LinearLayout ll1=new LinearLayout(this);
ll1.setPadding(0, 3, 0, 0);
ll1.setBackgroundResource(R.drawable.tabmessage);
ll1.setGravity(Gravity.CENTER);

final TextView messageid = new TextView(this);
messageid.setText(messages2.get(i).getmessageId());

final TextView targetid = new TextView(this);
targetid.setText(messages2.get(i).getUserid());

final TextView targetMessage = new TextView(this);
targetMessage.setText(messages2.get(i).getmessage());

LinearLayout layoutmsg=new LinearLayout(this);
layoutmsg.setClickable(true);
layoutmsg.setOrientation(1);
layoutmsg.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
ImageView msgImage=new ImageView(this);
final TextView msgimageInfo=new TextView(this);
try
{
String photoXml="<spGetMessagePhoto><MessageID>"+messages2.get(i).getmessageId()+"</MessageID></spGetMessagePhoto>";
String photoInfoFromDB1=new DataParsingComm().ILGetMessageImage(photoXml);
msgimageInfo.setText(photoInfoFromDB1);
if(photoInfoFromDB1.equalsIgnoreCase("anytype{}")|| photoInfoFromDB1==null)
{
msgImage.setVisibility(8);
}
else
{

byte[] imgArry= Base64.decode(photoInfoFromDB1);
Bitmap bit=BitmapFactory.decodeByteArray(imgArry,0,imgArry.length);
msgImage.setImageBitmap(bit);
}
}catch (Exception ee) {
// TODO: handle exception
ee.printStackTrace();
}

final TextView msg=new TextView(this);
msg.setText(messages2.get(i).getmessage());

final TextView msg1=new TextView(this);
if(messages2.get(i).getmessage().length()>60)
msg1.setText(messages2.get(i).getmessage().substring(0, 60)+"...");

else

msg1.setText(messages2.get(i).getmessage());
msg1.setTextColor(Color.BLACK);
msg1.setTypeface(Typeface.MONOSPACE);
msg1.setTextSize(13);
msg1.setWidth(250);
layoutmsg.addView(msgImage);
layoutmsg.addView(msg1);

ImageView PersonImage=new ImageView(this);
final TextView imageInfo=new TextView(this);
try{
//get the image based on user ID
String photoXml="<spGetUserPhoto><UserID>"+messages2.get(i).getUserid()+"</UserID></spGetUserPhoto>";
Log.v("check","photoXml.."+photoXml);
String photoInfoFromDB=new DataParsingComm().ILGetImage(photoXml);
Log.v("photoInfoFromDB","photoInfoFromDB.."+photoInfoFromDB);
imageInfo.setText(photoInfoFromDB);
if(photoInfoFromDB.equalsIgnoreCase("anytype{}")||photoInfoFromDB.equals(null) )
{
PersonImage.setImageResource(R.drawable.person);
}
else
{
byte[] imgArry= Base64.decode(photoInfoFromDB);
Bitmap bit=BitmapFactory.decodeByteArray(imgArry,0,imgArry.length);
Log.v("Shout","Image Lengthhhhhhhhhhhhh"+imgArry.length);
PersonImage.setImageBitmap(bit);
}
}catch (Exception ee) {
ee.printStackTrace();
}

final TextView personName=new TextView(this);
if(messages2.get(i).getUname().equalsIgnoreCase("noname"))
personName.setText("");
else
personName.setText(messages2.get(i).getUname());
personName.setTextColor(Color.rgb(0, 102, 51));
LinearLayout layoutPersonImage=new LinearLayout(this);
layoutPersonImage.setOrientation(1);
layoutPersonImage.setGravity(Gravity.CENTER);
layoutPersonImage.addView(PersonImage);
layoutPersonImage.addView(personName);
ll1.addView(layoutPersonImage);
ll1.addView(layoutmsg);
ll5.addView(ll1);
}
((LinearLayout)findViewById(R.id.LinearlayoutMessage)).addView(ll5);
}

最佳答案

您可以将图像存储在缓存内存中并进行访问。查看此示例:

Images in cache Memory

关于android - 如何处理在 Android 中实现惰性列表功能的动态列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5299392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com