2012-01-31 5 views
0

상대방 이름, 점수 등과 같은 게임 세부 정보가 표시되는 게임 목록을 만들고 싶습니다. 데이터를 XML로 가져 와서 표시하는 데 문제가 있습니다. 도움 말.android : 데이터를 xml로 표시

두 xml을 만들었습니다. 데이터를 두 번째 xml로 설정 한 다음 두 번째 xml을 첫 xml에 포함시켜야합니다. 제 1 XML은

<FrameLayout 
     android:id="@+id/gameListFrame" 
     android:layout_width="fill_parent" 
     android:layout_height="380dp" 
     android:orientation="vertical" > 

     <ScrollView 
      android:id="@+id/scrollView1" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:padding="5dip" > 

      <LinearLayout 
       android:id="@+id/GameListHolder" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:background="@color/scrollBackG" 
       android:orientation="horizontal" > 

      </LinearLayout> 
     </ScrollView> 
    </FrameLayout> 

2 XML입니다

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/gamelist_items" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:clickable="true" 
    android:orientation="vertical" > 

    <LinearLayout 

     android:layout_width="fill_parent" 
     android:layout_height="50px" 
     android:gravity="left" 
     android:orientation="horizontal" 
     android:background="#FFF" > 

     <ImageView 
      android:id="@+id/gl_avatar" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/ic_launcher" /> 

     <LinearLayout android:orientation="horizontal" 
      android:layout_width="225px" 
      android:layout_height="fill_parent" 
      android:gravity="left" 
      android:background="#000"> 
      <LinearLayout android:orientation="vertical" 
       android:layout_width="175px" 
       android:layout_height="wrap_content" 
       android:gravity="top"> 
       <TextView android:id="@+id/oppName" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" /> 
       <LinearLayout android:orientation="horizontal" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:gravity="top" > 
        <TextView android:id="@+id/lastWord" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 

         /> 
        <TextView android:id="@+id/diffTime" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         /> 
        </LinearLayout> 
      </LinearLayout> 


     </LinearLayout> 
    </LinearLayout> 

</LinearLayout> 

내 코드는 ListAdapter를 확장하고 각 행의 데이터를 설정하는 getView() 메소드를 오버라이드 (override) 할 필요가

gameListItem=(LinearLayout) findViewById(R.id.gamelist_items); 

for (i=0;i<gamelistVector.size();i++) 
{ 


rowView=View.inflate(context, R.layout.gamelist_details,null); 
TextView oppName=(TextView) rowView.findViewById(R.id.oppName); 
TextView lastWord=(TextView) rowView.findViewById(R.id.lastWord); 
TextView diffTime=(TextView) rowView.findViewById(R.id.diffTime); 
oppName.setText(gList.getOppName()); 
lastWord.setText(gList.getOppLastWord()); 
diffTime.setText(gList.getDiffTime()+"hr"); 
gameListItem.addView(rowView); //show the total games} 

답변

0

당신은 견해를 팽창 인플레이터의 참조가 필요 참조하십시오. GetInflater 참조 사용하기

:

LayoutInflater inflater = (LayoutInflater)context.getSystemService 
     (Context.LAYOUT_INFLATER_SERVICE); 

gameListItem=(LinearLayout) findViewById(R.id.gamelist_items); 

    for (i=0;i<gamelistVector.size();i++) 
    { 
     rowView=inflater.inflate(R.layout.gamelist_details, null);    
     TextView oppName=(TextView) rowView.findViewById(R.id.oppName); 
     TextView lastWord=(TextView) rowView.findViewById(R.id.lastWord);   
     TextView diffTime=(TextView) rowView.findViewById(R.id.diffTime); 
     oppName.setText(gList.getOppName());        
     lastWord.setText(gList.getOppLastWord());        
     diffTime.setText(gList.getDiffTime()+"hr");      
     gameListItem.addView(rowView); //show the total games 
    } 
0

덕분에 사람들은 내 쿼리에 대한 4 응답은 ... 난 ... 통해 UR 제안을보고하는 방법 내가 한 와트 차의 작업이 다르죠 생각

private void doDisplay(){ 
    this.runOnUiThread(new Thread() { 
     @Override 
     public void run() { 
      TextView gameCount=(TextView) findViewById(R.id.game_count); 
      gameCount.setText(" found "+maxGames+" games "); 

      for (i=0;i<gamelistVector.size();i++) 
      { 

       rowView=View.inflate(context, R.layout.gamelist_details, null); 
       TextView oppName=(TextView) rowView.findViewById(R.id.oppName); 
       TextView lastWord=(TextView) rowView.findViewById(R.id.lastWord); 
       TextView diffTime=(TextView) rowView.findViewById(R.id.diffTime); 
       TextView score=(TextView) rowView.findViewById(R.id.opplastMoveScore); 
       oppName.setText(" "+gamelistVector.get(i).getOppName()); 
       lastWord.setText(" "+gamelistVector.get(i).getOppLastWord()); 
       diffTime.setText(gamelistVector.get(i).getDiffTime()+""); 
       score.setText("("+gamelistVector.get(i).getLastMoveScore()+")"); 

       ImageView oppImage = (ImageView) rowView.findViewById(R.id.gl_avatar); 
       oppImage.setImageBitmap(gamelistVector.get(i).getOppImage()); 
       ImageView status = (ImageView) rowView.findViewById(R.id.gl_status); 
       status.setImageResource(gamelistVector.get(i).getTurnUserID()); 


       gameListItem.addView(rowView); 

      } 
     } 
    });  
} 
관련 문제