解析getLayoutInflater时出错

时间:2011-02-21 11:36:04

标签: android

在使用以下代码编译程序时,发生错误。它说getLayoutInflater()是未定义的。谁能帮助我尽快解决它。

 final LayoutInflater inflater = getLayoutInflater ( ); 

提前致谢。

3 个答案:

答案 0 :(得分:18)

HI Prasanth,你可以试试这个

步骤1:为Layout Inflater创建一个对象,如下所示:

LayoutInflater mInflater;

Step2:通过传递

初始化
Context context=MyActivity.getApplicationContext();
mInflater = LayoutInflater.from(context);

步骤3:在获取View meythod中,您可以将视图设置为

public View getView(int arg0, View myView, ViewGroup parent) {


            if (convertView == null) {

myView = mInflater.inflate(R.layout.mytest, null);
}

答案 1 :(得分:1)

Afaik getLayoutInflater()是Context提供的方法。如果此行位于不从Context继承的类中,则不起作用。传递一个Context对象并在该对象上调用该方法。

编辑:对不起,看了一下api文档,它是由Activity提供的

答案 2 :(得分:1)

这对我有用: 在我的活动代码中,我将上下文作为参数传递给我的适配器,如下所示:

CustumAdapter myAdapter = new CustumAdapter(this, Items);

然后我可以在我的适配器中使用它:

public class CustumAdapter extends BaseAdapter {

ArrayList<ListItem> Items ;
public Context context;

public CustumAdapter(Context context, ArrayList<ListItem> Items) {
    this.Items = Items;
    this.context = context;
}
....
@Override
public View getView(int position, View convertView, ViewGroup parent) {        
    LayoutInflater myInflater = LayoutInflater.from(context);
    View myview = myInflater.inflate(R.layout.row_item,null);

一切正常:)