开发者

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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜