0

我需要帮助为我的 GridView 设计适配器。我的StringArray里面strings.xml有大约 100 件物品。到目前为止我有这个,但我不确定在构造函数中放入什么来将我的 StringArray 链接到这个适配器。

public class Tab01_FavAdapter extends BaseAdapter {

    private Context mContext;
    private LayoutInflater mInflator;

    public Tab01_FavAdapter (Context c) {
        mContext = c;
        mInflator = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    }

    @Override
    public int getCount() {
        return .size();
    }

    @Override
    public Object getItem(int position) {
        return position;
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if(convertView == null) {
            convertView = mInflator.inflate(R.layout.griditemlayout, parent, false);
        }

        ... 

        return convertView;
    }
}
4

2 回答 2

1

如果我没有误解,您可以将数据集作为参数传递,例如

ArrayList<String> dataset;
public Tab01_FavAdapter (Context c, ArrayList<String> dataset) {
        mContext = c;
        mInflator = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        this.dataset = dataset;

    }


String[] stringArray =    getResources().getStringArray(R.array.FullList); 
ArrayList<String> dataset = new ArrayList<String>(Arrays.asList(stringArray)) 
于 2013-07-16T15:03:55.153 回答
1

除了黑带建议的arraylist之外,您还可以执行以下操作

  String s[] = getResources().getStringArray(R.array.StringArray);
  new Tab01_FavAdapter(this,s); 

getResources()需要活动上下文。确保在活动类中使用上述内容。或者使用活动中的 ActivityContext 来调用getResources

如果您有一个片段,您可以使用它getActivity()来获取托管活动的上下文。

在 custructor 中接收字符串数组

 String s[];      
 public Tab01_FavAdapter (Context c,String[] arr ) {
    mContext = c;
    mInflator = (LayoutInflater)    mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    s= arr; 
}

@Override
public int getCount() {
    return s.length;
}

使用相同的getView

于 2013-07-16T15:11:45.777 回答