gpt4 book ai didi

android - 如何在android中实现scrollview的动态布局中添加更多 View

转载 作者:行者123 更新时间:2023-11-30 04:43:03 26 4
gpt4 key购买 nike

我正在实现自定义线性布局,在后台过程中添加更多 View 使用 web 服务检索数据库所有数据都是检索消息和消息相关的用户图像也首先在自定义线性布局中一个接一个地加载图像后初始加载消息

主.xml

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout android:id="@+id/frameLayout1" android:layout_width="fill_parent" android:background="@android:color/white"
xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="fill_parent">
<ScrollView android:id="@+id/scrollView1" android:layout_height="wrap_content" android:layout_width="fill_parent">
<LinearLayout android:layout_width="fill_parent" android:id="@+id/linearLayout2" android:layout_height="fill_parent">
<LinearLayout android:layout_width="fill_parent" android:id="@+id/linearLayout3" android:layout_height="fill_parent">
<ImageView android:id="@+id/person" android:layout_width="wrap_content" android:layout_height="wrap_content"></ImageView>
<TextView android:textColor="@android:color/black" android:id="@+id/textView1" android:layout_height="wrap_content" android:layout_width="wrap_content"></TextView>
</LinearLayout>
</LinearLayout>
</ScrollView>
</FrameLayout>

代码文件:

public class MYlist extends Activity 
{
/** Called when the activity is first created. */
List<MessageClass> messages;
int i=0,n=5;
ParseXMLString parse=new ParseXMLString();
DataParsingComm dataparsing=new DataParsingComm();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String xml="<spGetUserMessages><SearchLocation></SearchLocation><LoginUserID>125</LoginUserID></spGetUserMessages>";
messages =parse.GetGetUserMessages(dataparsing.ILGetUserMessages(xml));


addElements(messages,i,n);
}

protected void addElements(final List<MessageClass> messages2,int i,int n)
{
int k=0;
//((LinearLayout)findViewById(R.id.linearLayout1)).removeAllViews();

for(int i1=i;i1<n;i1++)
{
LinearLayout ll1=((LinearLayout)findViewById(R.id.linearLayout2));
ll1.setBackgroundResource(R.drawable.tabmessage);
Log.v("11111111","333"+ i1+ n);
if(k==i1)
{
for(int j1=i1;j1<n;j1++)
{

TextView msg=((TextView)findViewById(R.id.textView1));
msg.setText(messages2.get(j1).getmessage());

}
}
ImageView prsnImg=((ImageView)findViewById(R.id.person));
try{
String photoXml="<spGetUserPhoto><UserID>125</UserID></spGetUserPhoto>";

String photoInfoFromDB=new DataParsingComm().ILGetImage(photoXml);

if(photoInfoFromDB.equalsIgnoreCase("anyType{}")||photoInfoFromDB.equals(null) )
{
prsnImg.setImageResource(R.drawable.person);
}
else{

byte[] imgArry= Base64.decode(photoInfoFromDB);

Bitmap bit=BitmapFactory.decodeByteArray(imgArry,0,imgArry.length);

prsnImg.setImageBitmap(bit);
}
}catch (Exception e) {
e.printStackTrace();
}
finally
{
System.gc();
System.runFinalization();
}

}

}
}

截图:http://www.freeimagehosting.net/uploads/8437c22cca.png

我的问题是每次显示一个项目时,所有数据都会覆盖布局中的单个项目 View 如何在线性布局中逐个显示 View

请告诉我一些解决方案提前谢谢

最佳答案

那是因为你总是选择相同的两个对象...

有一种非常基本的方法可以获得我认为您可能想要的东西:

主.xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/frameLayout1"
android:layout_width="fill_parent"
android:background="@android:color/white"
android:layout_height="fill_parent">
<ScrollView android:id="@+id/scrollView1"
android:layout_height="wrap_content"
android:layout_width="fill_parent">

</ScrollView>
</FrameLayout>

.java

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

ScrollView scrollView = (ScrollView) findViewById(R.id.scrollView1);

LinearLayout topLinearLayout = new LinearLayout(this);
topLinearLayout.setOrientation(LinearLayout.VERTICAL);

for (int i = 0; i < 15; i++){

LinearLayout linearLayout = new LinearLayout(this);
linearLayout.setOrientation(LinearLayout.HORIZONTAL);

ImageView imageView = new ImageView (this);
TextView textView = new TextView (this);

imageView.setImageResource(R.drawable.image);
textView.setText("Text View #" + i);

linearLayout.addView(imageView);
linearLayout.addView(textView);

topLinearLayout.addView(linearLayout);

}

scrollView.addView(topLinearLayout);

}

您还可以在 xml 文件中定义 topLinearLayout 对象。这取决于你。

关于android - 如何在android中实现scrollview的动态布局中添加更多 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5598087/

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