Android - 在我的适配器中使用字符串数组

时间:2013-07-16 15:02:04

标签: android arrays string adapter

我需要帮助为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;
    }
}

2 个答案:

答案 0 :(得分: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)) 

答案 1 :(得分:1)

你可以按照blackbelt建议的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

中使用相同的内容