2012-04-03 6 views
0

XMLレイアウトデザインからではなく、Javaコードを使用してレイアウトデザインを作成しました。私が使用したコードは次のとおりですLayoutInflaterインフレータを適切に使用する方法

public View getView(int position, View convertView, ViewGroup parent) { 
    TextView tv = new TextView(mContext); 
    tv.setText(hotelList.get(position).name); 
    return tv; 
    } 

レイアウトを作成するためにlayoutInflatorを使用する方法。 1つのリスト項目に2つのtextviewsが必要です。リスト全体には10種類のリスト項目が含まれています

いくつかのコードを入力してください。ヘルプをいただきありがとう

+0

こんにちは、ListView用に設計していますか?私にいくつかの詳細を教えてください。 –

+0

私はSAXを使ってxmlを解析してレイアウトを設計しています。解析結果から、リストを使ってリストビューに内容を表示する必要があります。今私はJavaコードを使用してリストを表示していますが、上記のように表示する必要があります。 – aditi

答えて

2

これまで静的なクラスも持っていました。これをチェックし、それが役立ちます。

@Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     View rowView = convertView; 


     if (rowView == null) { 

      LayoutInflater inflator = this._activity.getLayoutInflater(); 
      rowView = inflator.inflate(R.layout.todolistlisting, null); 
      TodoListViewHolder viewHolder = new TodoListViewHolder(); 
      viewHolder._name  = (TextView) rowView.findViewById(R.id.tVTLName);   
      viewHolder._completed = (TextView) rowView.findViewById(R.id.tVTLCCount); 
      viewHolder._remaining = (TextView) rowView.findViewById(R.id.tVTLRCount); 
      rowView.setTag(viewHolder); 

     } 

     TodoListViewHolder holder = (TodoListViewHolder) rowView.getTag(); 
     VO_TodoList votodolist = this._items.get(position);   
     holder._name.setText(votodolist._title);    
     holder._completed.setText(votodolist._completed); 
     holder._remaining.setText(votodolist._remaining); 

     return rowView;  

    } 

TodoListViewHolderは、ここに私のビューコンポーネントホルダーです。 TextViewのように

2

私はこのレイアウトのXMLレイアウトを作成する方法を知っていると思います。だからXMLレイアウトを作成し、次のコードを使用して、メインレイアウトのオブジェクトを取得:

LinearLayout mainLayout=(LinearLayout) View.inflate(R.layout.yourlayout); //if yourlayout.xml is the name of the xml file you made and put in the layout folder. 

レイアウトの子を取得するには、のは、それがID textTextViewだ場合、コードは次のようになりましょう:

TextView textView=(TextView)mainLayout.findViewById(R.id.text); 
+0

これは1つのテキストビューのみであり、1つのリストアイテムに合計3つのテキストビュー、もう1つのリストアイテムに3つのテキストビューが追加されました..リストビューには10個のアイテムがあります。 – aditi

+0

XMLを作成し、このTextViewで使用したのと同じコードを使用してオブジェクトを取得します。最初のステートメントを呼び出すだけでメインレイアウトのオブジェクトを取得する必要があります。これはLinearLayoutとみなされます。もしあれば、LinearLayoutを置き換えてください。 – noob

0

あなたはここで私は別の線形であり、1つのテキストビューを膨らませるのです。この

LinerLayout linearLayout = (LinearLayout)inflater.inflate(R.layout.news_categories_item, null); 

TextView categoryValueTextView = (TextView)linearLayout.findViewById(R.id.news_category_item_value); 

mMainLinearLayout.addView(categoryValueTextView); 

のようにインフレータを使用して、実行時にビューを追加することができますレイアウト(これはテキストビューだけを保持する単純な線形レイアウトです)を実行時に編集し、それを私のメインの線形レイアウトに追加します。

getLayoutInflater()を使用することで、インフレータオブジェクトをアクティブにすることができます。また、インフレータをアダプタに入れたい場合は、インフレータオブジェクトをあなたのアクティビティからアダプタのコンストラクタに渡す必要があります。

関連する問題