Android自定义ArrayAdapter中的getSystemService

我试图写一个自定义的ArrayAdapter 在这里引用我的代码是

package com.example.AndTest; import java.util.ArrayList; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.TextView; public class CategoryAdapter extends ArrayAdapter<Category> { private ArrayList<Category> items; public CategoryAdapter(Context context, int textViewResourceId, ArrayList<Category> items) { super(context, textViewResourceId, items); this.items = items; } @Override public View getView(int position, View convertView, ViewGroup parent) { View v = convertView; if (v == null) { LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); v = vi.inflate(R.layout.list, null); } Category c = items.get(position); if (c != null) { TextView itemId = (TextView) v.findViewById(R.id.itemid); TextView itemLabel = (TextView) v.findViewById(R.id.itemlabel); if (itemId != null) { itemId.setText("Name: " + c.getId()); } if (itemLabel != null) { itemLabel.setText("Status: " + c.getTitle()); } } return v; } } 

但是我得到错误信息在行LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);

The method getSystemService(String) is undefined for the type CategoryAdapter

我错过了什么..

 public class Category implements Parcelable { .... } 

Solutions Collecting From Web of "Android自定义ArrayAdapter中的getSystemService"

getSystemServiceContext类的一个方法,所以先尝试获取一个Context对象:

 LayoutInflater vi = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

你也可以使用View类的静态方法:

public static View inflate (Context context, int resource, ViewGroup root)