0

アイコンとプロバイダーの名前を含むオペレーターのリストを表示するカスタム Gridview があります。私の問題は、限定されたプロバイダー (12 のみ) のみを表示する Gridview です。 GridView をスクロールしながら Gridview で。

私のソースコードはここにあります

public class ImageAdapter extends BaseAdapter {

    public int getCount() {
        return providerlist1.size();
    }

    public Object getItem(int position) {
        return null;
    }

    public long getItemId(int position) {
        return 0;
    }

    // create a new ImageView for each item referenced by the Adapter
    public View getView(int position, View convertView, ViewGroup parent) {
        View v;
        ImageView imageView;
        if (convertView == null) {
            LayoutInflater layoutInflater = getLayoutInflater();
            v = layoutInflater.inflate(R.layout.icon_with_text, null);
            TextView txt = (TextView) v.findViewById(R.id.icon_text);
            txt.invalidate();
            txt.setTypeface(localTypeface1);
            Collections.sort(providerlist1);
            Log.v("COLLECTIONS", ""+providerlist1);
            txt.setText("" + providerlist1.toArray()[position]);
            String string = (String) txt.getText();
            icon = string.toLowerCase();
            System.out.println(icon);
            int resid = getResources().getIdentifier("" + icon, "drawable",
                    "com.digient.yeldi.app");
            imageView = (ImageView) v.findViewById(R.id.icon_image);
            imageView.setImageResource(resid);

        } else {
            v = convertView;
        }

        return v;

    }

}

providerlist1 は、16 個を超える演算子値を持つ配列リストです。

4

1 に答える 1

0

そのために以下のコードを使用してください、それはあなたを助けるかもしれません。

public class ImageAdapter extends BaseAdapter {

    LayoutInflater layoutInflater;
    Context ctx;
    public ImageAdapter(Context context) {
        // TODO Auto-generated constructor stub
        layoutInflater=LayoutInflater.from(context);
        this.ctx=context;
    }

    public int getCount() {
        return providerlist1.size();
    }

    public Object getItem(int position) {
        return null;
    }

    public long getItemId(int position) {
        return 0;
    }

    // create a new ImageView for each item referenced by the Adapter
    public View getView(int position, View convertView, ViewGroup parent) {
        View v;
        ImageView imageView;
        if (convertView == null) {
            v = layoutInflater.inflate(R.layout.icon_with_text, null);
        } else {
            v = convertView;
        }

        TextView txt = (TextView) v.findViewById(R.id.icon_text);
        txt.invalidate();
        txt.setTypeface(localTypeface1);
        Collections.sort(providerlist1);
        Log.v("COLLECTIONS", ""+providerlist1);
        txt.setText("" + providerlist1.toArray()[position]);
        String string = (String) txt.getText();
        icon = string.toLowerCase();
        System.out.println(icon);
        int resid = getResources().getIdentifier("" + icon, "drawable", "com.digient.yeldi.app");
        imageView = (ImageView) v.findViewById(R.id.icon_image);
        imageView.setImageResource(resid);

        return v;

    }

}
于 2012-06-11T07:28:26.060 に答える