Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android getSystemService inside custom ArrayAdapter

Tags:

android

I was trying to write a custom ArrayAdapter referencing here My code is

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;
    }
}

But I'm getting error message on the line LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);

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

Am i missing something..

public class Category implements Parcelable {
....
}
like image 856
Mithun Sreedharan Avatar asked Dec 01 '10 05:12

Mithun Sreedharan


1 Answers

getSystemService is a method of Context class, so try to get a Context object first:

LayoutInflater vi = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
like image 105
Konstantin Burov Avatar answered Oct 19 '22 05:10

Konstantin Burov