这篇文章主要介绍了机器人开发之利用列表视图动态刷新某个项目的方法,文章给出了详解的示例代码,相信对大家的理解和学习具有一定的参考借鉴价值,有需要的朋友们下面来一起跟着小编学习学习吧。
前言
本文实现的是使用取景器来刷新某项数据,而不用每次都全部刷新数据。下面话不多说,来看看详细的介绍。
实现方法
继承基本适配器,新建取景器类。
公共类TestListAdapter扩展基本适配器{
私有上下文mContext
私有列表字符串
公共测试列表适配器(上下文上下文,列表字符串列表){
super();
this.mContext=上下文
this.strList=list
}
@覆盖
public int getCount() {
//TODO自动生成的方法存根
返回strlist。size();
}
@覆盖
公共对象getItem(int position) {
//TODO自动生成的方法存根
返回位置;
}
@覆盖
public long getItemId(int position){
//TODO自动生成的方法存根
返回位置;
}
@覆盖
公共视图getView(int position,View convertView,ViewGroup parent) {
//TODO自动生成的方法存根
ViewHolder holder=null
if (null==convertView) {
convert view=layoutinflater。来自(m上下文).inflate(R.layout.line,null);
holder=新视图holder();
持有人。id text=(TextView)转换视图。findviewbyid(r . id。TextView _ id);
持有人。strtext=(TextView)转换视图。findviewbyid(r . id。TextView _ str);
转换视图。settag(持有人);
}否则{
holder=(视图持有者)转换视图。gettag();
}
持有人。id文本。settext(位置“”);
string str=strlist。get(位置);
持有人。strtext。settext(str);
返回convertView
}
私有静态类视图容器{
私有文本视图iDText
私有文本视图strText
}
public void updataView(int posi,ListView listView) {
int visiblesfirstposi=listview。getfirstvisibleposition();
int visiblestposi=listview。getlastvisibleposition();
if(posi=visiblestposi posi=visiblestposi){
视图视图=列表视图。在(posi-visibleFirstPosi)获取子级;
视图持有者holder=(视图持有者)视图。gettag();
字符串txt=holder。strtext。gettext().toString();
txt=txt ';';
持有人。strtext。settext(txt);
strList.set(posi,txt);
}否则{
string txt=strlist。get(posi);
txt=txt ';';
strList.set(posi,txt);
}
}
}
在活动中,调用更新视图()方法,刷新数据。
公共类主要活动扩展活动{
私有主活动m上下文
私有编辑文本idEdit
私有文本视图文本视图
private ListString strList=new ArrayList string();
私有ListView列表视图
私有测试列表适配器列表适配器
@覆盖
受保护的void onCreate(Bundle saved instancestate){
超级棒。oncreate(savedInstanceState);
setContentView(r . layout。活动_主);
mContext=this
for(int I=0;i 100i ) {
strList.add('测试数据');
}
idEdit=(EditText)findViewById(r . id。EditText _ id);
textView=(textView)findViewById(r . id。textView _ modify);
listView=(listView)findViewById(r . id。listView);
list adapter=new test list adapter(m context,strList);
列表视图。设置适配器(列表适配器);
//动态刷新
文本视图。setonclicklistener(new OnClickListener(){
@覆盖
公共void onClick(视图五){
//TODO自动生成的方法存根
String idStr=idEdit.getText().toString();
int idInt=integer。parse int(idStr);
ListAdapter.updataView(idInt,listView);//动态修改
}
});
}
}
给出布局文件:
线性布局xmlns:Android=' http://模式。安卓。' com/apk/RES/Android '
xmlns:tools=' http://模式。安卓。' com/tools '
Android:layout _ width=' match _ parent '
Android:layout _ height=' match _ parent '
android:background='#FFFFFF '
安卓:方向='垂直'
线性布局
Android:layout _ width=' match _ parent '
android:layout_height='40dp '
安卓:方向='水平'
编辑文本
android:id='@ id/edittext_id '
android:layout_width='200dp '
Android:layout _ height=' wrap _ content '
android:hint='put modify id' /
文本视图
Android:id=' @ id/text view _ modify '
Android:layout _ width=' wrap _ content '
Android:layout _ height=' wrap _ content '
android:text='动态修改'
android:textColor='#123456' /
/线性布局
列表视图
android:id='@ id/listview '
Android:layout _ width=' match _ parent '
Android:layout _ height=' wrap _ content '
/列表视图
/线性布局
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。