2011-04-08 106 views
1

我正在實現自定義線性佈局添加更多視圖檢索數據庫使用web服務在後臺進程中所有數據都是retrive消息和消息相關userimages還首先初始化加載消息之後通過在自定義佈局線性一個加載圖像如何實現在動態佈局中實現添加更多視圖android

main.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> 

的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(); 
      } 

     } 

    } 
} 

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

我的問題是,每一次顯示一個項目的所有數據覆蓋的佈局,單個項目視圖如何通過一個顯示器意見線性佈局實現一個

請告訴我一些解決方案在此先感謝

回答

1

那是因爲你總是選擇相同的兩個對象...

有什麼獲取我想你可能需要一個非常基本的方法:

爲主。 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對象。它是由你決定。

+0

嗨我添加的意見,但不工作 – Narasimha 2011-04-09 07:08:01

+0

我更新了我的答案與一些基本的代碼,你可以找到有用的。 – MobileCushion 2011-04-09 10:23:09