数据添加到自定义的ListView滚动列表 [英] Add data to custom ListView scrolling list
问题描述
我实现了一个自定义适配器来填充自定义的ListView
一个图片
2 文本字段
。现在我要做的就是将新行添加动态地向下滚动列表。何可我实现这个结果?
这是适配器的code
公共类CustomListAdapter扩展ArrayAdapter<串GT; { 私人最终活动范围内;
私人最终的String [] ITEMNAME;
私人最终整数[] imgid;
私人最终的String []的问题; 公共CustomListAdapter(Activity上下文,字符串[] ITEMNAME,整数[] imgid,的String []的问题){
超(背景下,R.layout.mylist,ITEMNAME);
// TODO自动生成构造函数存根 this.context =背景;
this.itemname = ITEMNAME;
this.imgid = imgid;
this.questions =问题;
} 公共查看getView(INT位置,查看视图的ViewGroup父){
LayoutInflater吹气= context.getLayoutInflater();
查看rowView = inflater.inflate(R.layout.mylist,空,真);
rowView.setPadding(0,10,0,10); TextView的txtTitle =(TextView中)rowView.findViewById(R.id.nameList);
txtTitle.setTextColor(Color.BLACK);
ImageView的ImageView的=(ImageView的)rowView.findViewById(R.id.imgList);
TextView的extratxt =(TextView中)rowView.findViewById(R.id.question); txtTitle.setText(ITEMNAME [位置]);
imageView.setImageDrawable(新RoundImage(BitmapFactory.de codeResource(context.getResources(),imgid [位置])));
//imageView.setImageResource(imgid[position]);
extratxt.setText(问题[位置]);
返回rowView; };
}
这是片段
在该列表所在的code的一部分
@覆盖
公共查看onCreateView(LayoutInflater充气器,容器的ViewGroup,捆绑savedBundle){
this.adapter =新CustomListAdapter(getActivity(),ITEMNAME,imgid,问题);
名单=(ListView控件)firstAccessView.findViewById(R.id.list);
list.setAdapter(适配器); list.setOnItemClickListener(新AdapterView.OnItemClickListener(){
//东东
@覆盖
公共无效onItemClick(适配器视图<>母公司,观景,
INT位置,长的id){
// TODO自动生成方法存根
字符串Slecteditem = ITEMNAME [+位置]
Toast.makeText(getActivity()getApplicationContext(),Slecteditem,Toast.LENGTH_SHORT).show(); }
});
}
覆盖 onScroll()
在你的片段有方法 onCreateView()
,实施 onScrollListener
。
更改您的问题字符串ArrayList的数组。你可以做其他的清单。
私人的ArrayList<串GT;问题;公共CustomListAdapter(Activity上下文,字符串[] ITEMNAME,整数[] imgid,ArrayList的<串GT;的问题){
超(背景下,R.layout.mylist,ITEMNAME);
// TODO自动生成构造函数存根 this.context =背景;
this.itemname = ITEMNAME;
this.imgid = imgid;
this.questions =问题;
}公共查看getView(INT位置,查看视图的ViewGroup父){
LayoutInflater吹气= context.getLayoutInflater();
查看rowView = inflater.inflate(R.layout.mylist,空,真);
rowView.setPadding(0,10,0,10); TextView的txtTitle =(TextView中)rowView.findViewById(R.id.nameList);
txtTitle.setTextColor(Color.BLACK);
ImageView的ImageView的=(ImageView的)rowView.findViewById(R.id.imgList);
TextView的extratxt =(TextView中)rowView.findViewById(R.id.question); txtTitle.setText(ITEMNAME [位置]);
imageView.setImageDrawable(新RoundImage(BitmapFactory.de codeResource(context.getResources(),imgid [位置])));
//imageView.setImageResource(imgid[position]);
extratxt.setText(questions.get(位置));
返回rowView;};
}
实施onScroll的
@覆盖
公共无效onScroll(AbsListView观点,诠释firstVisibleItem,
INT visibleItemCount,诠释totalItemCount){//这里加载新的数据集。
your_adapter.notifyDataSetChanged();
}
I implemented a custom adapter to fill a custom ListView
with one image
and 2 TextField
. Now what I want to do is to add new rows dynamically scrolling down the list. Ho can I do achieve this results?
This is the code of the adapter
public class CustomListAdapter extends ArrayAdapter<String> {
private final Activity context;
private final String[] itemname;
private final Integer[] imgid;
private final String[] questions;
public CustomListAdapter(Activity context, String[] itemname, Integer[] imgid, String[] questions) {
super(context, R.layout.mylist, itemname);
// TODO Auto-generated constructor stub
this.context = context;
this.itemname = itemname;
this.imgid = imgid;
this.questions=questions;
}
public View getView(int position, View view, ViewGroup parent) {
LayoutInflater inflater = context.getLayoutInflater();
View rowView = inflater.inflate(R.layout.mylist, null, true);
rowView.setPadding(0,10,0,10);
TextView txtTitle = (TextView) rowView.findViewById(R.id.nameList);
txtTitle.setTextColor(Color.BLACK);
ImageView imageView = (ImageView) rowView.findViewById(R.id.imgList);
TextView extratxt = (TextView) rowView.findViewById(R.id.question);
txtTitle.setText(itemname[position]);
imageView.setImageDrawable(new RoundImage(BitmapFactory.decodeResource(context.getResources(), imgid[position])));
//imageView.setImageResource(imgid[position]);
extratxt.setText(questions[position]);
return rowView;
};
}
this is part of the code of the fragment
in which the list is located
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedBundle) {
this.adapter=new CustomListAdapter(getActivity(), itemname, imgid, questions);
list=(ListView)firstAccessView.findViewById(R.id.list);
list.setAdapter(adapter);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
//stuff
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
String Slecteditem= itemname[+position];
Toast.makeText(getActivity().getApplicationContext(), Slecteditem, Toast.LENGTH_SHORT).show();
}
});
}
override onScroll()
method in your fragment which has onCreateView()
, implement onScrollListener
.
Changing your questions array of string to ArrayList. you can do it for other lists as well.
private ArrayList<String> questions;
public CustomListAdapter(Activity context, String[] itemname, Integer[] imgid, ArrayList<String> questions) {
super(context, R.layout.mylist, itemname);
// TODO Auto-generated constructor stub
this.context = context;
this.itemname = itemname;
this.imgid = imgid;
this.questions=questions;
}
public View getView(int position, View view, ViewGroup parent) {
LayoutInflater inflater = context.getLayoutInflater();
View rowView = inflater.inflate(R.layout.mylist, null, true);
rowView.setPadding(0,10,0,10);
TextView txtTitle = (TextView) rowView.findViewById(R.id.nameList);
txtTitle.setTextColor(Color.BLACK);
ImageView imageView = (ImageView) rowView.findViewById(R.id.imgList);
TextView extratxt = (TextView) rowView.findViewById(R.id.question);
txtTitle.setText(itemname[position]);
imageView.setImageDrawable(new RoundImage(BitmapFactory.decodeResource(context.getResources(), imgid[position])));
//imageView.setImageResource(imgid[position]);
extratxt.setText(questions.get(position));
return rowView;
};
}
implementation of onScroll
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
//load your new set of data here.
your_adapter.notifyDataSetChanged();
}
这篇关于数据添加到自定义的ListView滚动列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!