在使用以下代码编译程序时,发生错误。它说getLayoutInflater()是未定义的。谁能帮助我尽快解决它。
final LayoutInflater inflater = getLayoutInflater ( );
提前致谢。
答案 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);
一切正常:)