2011-07-17 14 views
0

私はSAXパーサを使ってWebからxmlを解析しました。今私は解析されたデータを表示する問題があります。 ImageButtonとテキストビューを並べて表示します。そのために、Imagebuttonsとtextview(xmlを使用しない)のリストを使用する必要があるので、コードを使用して相対レイアウトを使用しました。で検索した後androidでxmlを解析した後の動的コンテンツのListviewの作成方法

 // Create a new TextView to display the parsing result later. 
     RelativeLayout layout = new RelativeLayout(this); 


     /* Create a new TextView to display the parsingresult later. */ 
     TextView tv = new TextView(this); 
     tv.setId(1); 

     // Defining the layout parameters of the TextView 
     RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
       RelativeLayout.LayoutParams.WRAP_CONTENT, 
       RelativeLayout.LayoutParams.WRAP_CONTENT); 
     lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, tv.getId()); 
     // Setting the parameters on the TextView 
     tv.setLayoutParams(lp); 

     ImageButton imgBtn = new ImageButton(this); 
     imgBtn.setId(2); 
     RelativeLayout.LayoutParams lp1 = new RelativeLayout.LayoutParams(
       RelativeLayout.LayoutParams.WRAP_CONTENT, 
       RelativeLayout.LayoutParams.WRAP_CONTENT); 
     lp1.addRule(RelativeLayout.ALIGN_PARENT_LEFT, imgBtn.getId()); 
     imgBtn.setLayoutParams(lp1); 
      layout.addView(tv); 
     layout.addView(imgBtn); 

私は.. ::このような何かを表示するために
のImageButtonのTextView
のImageButtonののTextViewを持つn(nは無しに依存します。構文解析後のXML内のエントリ)

一日のためのウェブ私はこれを行う方法を混乱させる。いくつか使用されています
listview.setAdapter(新しいListAdapter(Splash.this、R.id.list_view、mListItem)); - mListItemは文字列のArrayListですが、私は画像ボタンとテキストビューを持つrelativelayoutを持っていますので、これを使うことはできません。

テーブルビューまたはリストビューに移動し、サンプルコードを提供する必要があります。 Plsが提案する。
ありがとうございます。 Pavan

答えて

0

xmlレイアウトを使用して簡単にする必要があります。

list_item.xml res/layoutの下でこのレイアウトを作成し、リストビュー上の単一の項目を表す

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    > 
    <ImageButton 
     android:id="@+id/mImageButton" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     /> 
    <TextView 
     android:id="@+id/mTextView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     /> 
</LinearLayout> 

各地図ListViewコントロール内の単一の項目を表す地図のリストを作成します。

List<Map<String, Object>> list = new ArrayList<HashMap<String, Object>>(); 
Map<String, Object> item; 

item = new HashMap<String, Object>(); 
item.put("textPart", "The Text Part of Parsed Data"); 
item.put("imagePart", /* Drawable instance of image data here */); 
list .put(item); 

item = new HashMap<String, Object>(); 
item.put("textPart", "The Text Part 2"); 
item.put("imagePart", /* yet another Drawable instance*/); 
list.put(item); 

// and so on ... 

そして "textPart" はR.id.mTextViewにマッピングされ、 "imagePart" はR.id.mImageButton

にマッピングされSimpleAdapter

SimpleAdapter adapter; 
String[] source = new String[]{"imagePart", "textPart"}; 
int[] target = new int[]{R.id.mImageButton, R.id.mTextView}; 

// "list" is the List<Map<String, Object>> instance 
adapter = SimpleAdapter(this, list, R.layout.list_item, source, target); 

adapter.setViewBinder(new SimpleAdapter.ViewBinder(){ 
    @Override 
    public boolean setViewValue(View view, Object data, String textRepresentation) { 
     if (view instanceof ImageView && data instanceof Drawable) { 
      ((ImageView) view).setImageDrawable((Drawable) data); 
      return true; // we handle it manually 
     } 
     return false; // let system handle it 
    } 
}); 

listView.setAdapter(adapter); 

を用いlist_item.xmlにデータをバインドします

参照:
http://developer.android.com/reference/android/widget/SimpleAdapter.html

関連する問題