这是一个简单的问题,我有一个独立的类用于调整我的listView,我想在这个类中设置一个参数,在我的Activity里面调整它的列表:
PageItemsInflater.java
:
public class PageItemsInflater extends ArrayAdapter<String>{
int _TYPE = 1; //this parameter
TextView tvno, tvcount, tvPrice;
Context c;
public PageItemsInflater(Context context, int resource,
int textViewResourceId, List<String> objects) {
super(context, resource, textViewResourceId, objects);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = new LayoutInflater(c) {
@Override
public LayoutInflater cloneInContext(Context newContext) {
return null;
}
};
convertView = inflater.inflate(R.layout.pages_items_list, null);
tvno = (TextView) convertView.findViewById(R.id.tv_no);
tvcount = (TextView) convertView.findViewById(R.id.tv_no_count);
if(_TYPE == 1){
//TODO
}else{
//TODO
}
return convertView;
}
}
我说的参数是 _TYPE
我想在FirstActivity
设置 _TYPE = 1
,我的意思是我想改变我的活动中的_TYPE
为每个活动设置特殊文本。在Activity中我调用我的适配器:
lv.setAdapter(new PageItemsInflater(getApplicationContext(), R.layout.pages_items_list, R.id.tv_no, names));
我不想使用 SharedPreferences
。
答案 0 :(得分:0)
您可以覆盖构造函数并将TYPE传递给适配器。
public PageItemsInflater(Context context, int resource,
int textViewResourceId, List<String> objects, int type) {
super(context, resource, textViewResourceId, objects);
//do something with the type
}
然后自己初始化inflater。如果您想要更灵活,请切换BaseAdapter以获得更大的灵活性。
答案 1 :(得分:0)
您可以像这样修改适配器类的构造函数
public PageItemsInflater(Context context, int resource,
int textViewResourceId, List<String> objects, int type) {
super(context, resource, textViewResourceId, objects);
}
然后将此适配器设置为列表视图,如下所示
lv.setAdapter(new PageItemsInflater(getApplicationContext(), R.layout.pages_items_list, R.id.tv_no, names,-1));