how can implemented adding more views in dynamic layout implementing scrollview in android
i am implementing custom linearlayout in this adding more views retrieve database using webservices in back ground process all data are retrive messages and message related userimages also first initally loading messages after one by one loading images in custom linear layout
main.xml
<?xml version="1.0" encoding="utf-8"?>
<Fr开发者_JAVA技巧ameLayout 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>
codefile:
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();
}
}
}
}
screenshot: http://www.freeimagehosting.net/uploads/8437c22cca.png
my problem is every time display one item all data override that single item view in layout how can implemented one by one display views in linear layout
please tell me some solution thanks in advance
That is because you are always selecting the same two objects...
There is a very basic way of obtaining what I think you might want:
main.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);
}
You can also define the topLinearLayout
object in the xml file. It is up to you.
精彩评论