2012-04-03 24 views
0

我使用java代碼而非XML佈局設計創建了佈局設計。我使用的代碼如下如何正確使用LayoutInflater充氣器

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

如何使用layoutInflator爲此創建佈局。我需要在單個列表項目中添加2個文字瀏覽。整個列表包含10個不同的列表項目

請爲此提供一些代碼。幫助讚賞

+0

嗨,你在爲ListView設計嗎?給我更多的細節。 – 2012-04-03 06:57:50

+0

我正在通過使用SAX解析XML來設計佈局,並從解析的結果中,我需要通過使用列表來顯示列表視圖中的內容。現在我使用java代碼顯示列表,但需要像上面提到的那樣顯示。 – aditi 2012-04-03 08:29:38

回答

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 text一個TextView,那麼代碼會:

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

這僅適用於一個textview,我需要兩個以上,單個列表項中共有三個textview,另一個列表項中另外三個。因此列表視圖中有10個項目 – aditi 2012-04-03 07:08:31

+0

然後將所有這10個視圖放在XML,並使用我用於此TextView的相同代碼獲取其對象。你只需要調用第一條語句就可以得到主佈局的對象,我認爲它是一個LinearLayout,如果是其他任何東西,只需用代碼中的LinearLayout代替即可。 – noob 2012-04-03 07:13:19

0

您可以通過使用吹氣這樣

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); 

我在這裏充氣一個文本視圖是有另一種線性在運行時添加視圖佈局(這是簡單的線性佈局,只包含textview)在運行時並將其添加到我的主要線性佈局。

通過使用getLayoutInflater(),您可以在活動中獲得充氣器對象。如果你想在適配器中獲得充氣器,你必須將inflater對象從你的活動傳遞給適配器的構造器。