0

请朋友们帮帮我。这个程序有什么问题。我不能在这里使用 LayoutInflater。如何解决这个问题呢。

public class MyListAdapter extends ArrayAdapter<MyData> implements
        OnClickListener {

    private ArrayList<MyData> items;
    Context context;

    public MyListAdapter(Context context, int textViewResourceId,
            ArrayList<MyData> items) {
        super(context, textViewResourceId, items);
        this.items = items;
        this.context = context;
    }

    @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.row, null);
        }

        MyData myData = items.get(position);
        if (myData != null) {
            TextView textViewTwo = (TextView) v
                    .findViewById(R.id.text_view_two);
            if (textViewTwo != null) {
                textViewTwo.setText(myData.getText());
                // put the id to identify the item clicked
                textViewTwo.setTag(myData.getId());
                textViewTwo.setOnClickListener(this);
            }
        }
        return v;
    }

    public void onClick(View v) {
        // TODO Auto-generated method stub
        Log.d("Sample", "Clicked on tag: " + v.getTag());
        Toast.makeText(context, "", Toast.LENGTH_SHORT).show();

    }

}

错误是:未为 MyListAdapter 类型定义方法 getSystemService(String)。

提前致谢。

4

3 回答 3

2

采用

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

代替

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

因为 forgetSystemService是 Context 类的方法而不是ArrayAdapter. 你需要使用上下文实例来访问getSystemService方法

于 2013-02-20T05:26:50.953 回答
1

context.getStystemService()像这样试试

 LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
于 2013-02-20T05:27:32.043 回答
1

使用Activity的上下文获取系统服务

这是调用充气机的正确方法。

LayoutInflater vi = (LayoutInflater) 上下文。获取系统服务(上下文。LAYOUT_INFLATER_SERVICE);

于 2013-02-20T05:39:38.573 回答