Android 列表视图中的内容数据

Android 列表视图中的内容数据,android,android-listview,Android,Android Listview,我想获取列表视图内容的所有记录。我使用了row.setonclicklistner,但前3-4项工作正常,下一项显示空指针异常。我该怎么办? 我已经用(*)指出了那一行 package com.example.tex.list; 公共类tex扩展活动{ @凌驾 创建时的公共void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_xutex); Lis

我想获取列表视图内容的所有记录。我使用了row.setonclicklistner,但前3-4项工作正常,下一项显示空指针异常。我该怎么办? 我已经用(*)指出了那一行

package com.example.tex.list;
公共类tex扩展活动{
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_xutex);
ListView lt=(ListView)findViewById(R.id.listView1);
Databasequery db=新的Databasequery(此);
db.open();
Listtest=db.getAllcards();
lt.setAdapter(新的myadatper(getApplicationContext(),R.layout.listlayoutdesign,test));
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
getMenuInflater().充气(R.menu.activity_xutex,menu);
返回true;
}
公共类myadatper扩展了ArrayAdapter
{
清单项目;
拉平机;
语境;
国际布局资源;
属性p;
公共myadatper(上下文,内部布局资源ID,
列表项目)
{
超级(上下文、布局资源ID、项目);
this.layoutResourceId=layoutResourceId;
这个项目=项目;
this.context=context;
//TODO自动生成的构造函数存根
}
@凌驾
公共视图getView(最终整数位置、视图转换视图、视图组父视图)
{
//TODO自动生成的方法存根
//返回super.getView(position、convertView、parent);
视图行=转换视图;
ViewHolder=新的ViewHolder();
if(行==null)
{
LayoutInflater充气机=getLayoutInflater();
行=充气机。充气(R.layout.listlayoutdesign,父级,false);
holder.name=(TextView)row.findViewById(R.id.TextView01);
holder.address=(TextView)row.findViewById(R.id.TextView02);
holder.designation=(TextView)row.findViewById(R.id.TextView03);
holder.contactno=(TextView)row.findViewById(R.id.textView1);
holder.Emailaddress=(TextView)row.findViewById(R.id.TextView04);
holder.TapToadd=(ImageView)row.findViewById(R.id.imageView1);
row.setTag(支架);
row.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图v){
//TODO自动生成的方法存根
ListView l3t=(ListView)findViewById(R.id.listView1);
视图=l3t.getChildAt(位置);
异常点***************TextView t=(TextView)view.findViewById(R.id.TextView01)******************
TextView t2=(TextView)view.findViewById(R.id.TextView02);
TextView t3=(TextView)view.findViewById(R.id.TextView03);
字符串数据=t.getText().toString();
Toast.makeText(getApplicationContext(),data,Toast.LENGTH_SHORT.show();
}
});
}
其他的
{
holder=(ViewHolder)row.getTag();
}
字符串名称=items.get(position.getCompanyname();
String contactno=items.get(position.getCompanycontactno();
字符串地址=items.get(position.getCompanyaddress();
字符串名称=items.get(position.getcompanyempsignation();
字符串Emailaddress=items.get(position.getCompanyemailaddress();
holder.name.setText(名称);
holder.contactno.setText(contactno);
持有人.名称.setText(名称);
holder.address.setText(地址);
holder.Emailaddress.setText(Emailaddress);
int Datacount=items.size();
如果(位置==数据计数-1)
{
Toast.makeText(getApplicationContext(),Datacount+“”,Toast.LENGTH_SHORT).show();
保持架.点击添加.后退资源(R.可提取.点击添加);
}
Toast.makeText(getApplicationContext(),position+“”,Toast.LENGTH_SHORT).show();
返回行;
}
公共类视图持有者
{
文本视图名称;
文本视图地址;
文本视图名称;
文本视图联系人编号;
文本视图电子邮件地址;
图像视图点击添加;
对象对象对象;
}
}
}

当您想从ListView中提取数据时,不能使用行的视图。这是因为在构建(和显示)ListView的行时,视图是循环的

您的应用程序位于适配器类中,该类应处理ListView后面的数据,因此请使用它

你的电脑应该取代你的电脑

ListView l3t=(ListView)findViewById(R.id.listView1);
View view = l3t.getChildAt(position);
TextView t = (TextView)view.findViewById(R.id.TextView01);
TextView t2 = (TextView)view.findViewById(R.id.TextView02);
TextView t3=(TextView)view.findViewById(R.id.TextView03);
String data=t.getText().toString();
通过一种非常简单的方式:

String data = items.get(position).getCompanyname();

请发布NullPointerException的堆栈跟踪。这会有帮助的!(别忘了告诉堆栈指出代码中的哪一行)java.lang.NullPointerException com.example.xonlist.Xu$myadatper$1.onClick(Xu.java:113)在TextView t=(TextView)view.findViewById(R.id.TextView01)行中显示空指针异常;我猜他们的位置有问题,因为它不是一次更新列表视图的所有行。谢谢,伙计,我还有一个问题,因为列表视图中的图像在滚动时发生了更改,我在列表末尾插入了一个空白图像,但在上下滚动时,图像会更改其位置。这是因为,正如我告诉过你的,这些视图将被重用以显示列表的每一行。您必须在每种情况下设置映像,而不仅仅是最后一行(
if(position==Datacount-1){…}else{/*HERE*/}
String data = items.get(position).getCompanyname();