2012-04-03 58 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对象从你的活动传递给适配器的构造器。