问题描述
- Android的listview问题
-
package com.example.listview;import android.app.Activity;
import android.content.Context;
import android.database.DataSetObserver;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.TextView;public class MainActivity extends Activity {
private Context mContext; private TextView textview; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //1找到listview ListView listview=(ListView)findViewById(R.id.listview); //2创建一个adapter对象,以为下面已经申明了一个类 mylistadpater mylistadpater1=new mylistadpater(); //3将adapter设置个listview listview.setAdapter(mylistadpater1); } class mylistadpater extends BaseAdapter{//default base simple @Override public int getCount() { // TODO Auto-generated method stub //集合里面又多少条目,告诉listview要显示多少条目 return 10; } //根据position获取listview上面的bean书局,该方法不影响数据的展示,可以先不实现 @Override public Object getItem(int position) { // TODO Auto-generated method stub return null; } @Override public long getItemId(int position) { // TODO Auto-generated method stub return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { textview=(TextView)findViewById(R.id.TextView); textview.setText("position:"+position); return textview; }
}
}
不报错,但是安装到虚拟机上面就立刻崩溃
解决方案
你这个适配器写的,你那个getView()返回的是一个item项,你这个返回一个textview是个什么鬼。因为写convertview =LayoutInflater.from(MainActivity.this).inflate(R.layout.list_item, null); tv = (TextView) convertView.findViewById(R.id.tv);。。。。。。 return convertView;
解决方案二:
奔溃,你先看看logcat的日志,里面会有显示的,根据具体错误找问题
解决方案三:
原创教程,转载请保留出处:http://www.eoeandroid.com/thread-72369-1-1.html
最近有需求需要在listView中载入不同的listItem布局,开始没有使用convertView,加载了多个item后导致了内存泄露,所以回来研究convertView在多个listItem布局时的缓存及应用,并且和大家分享
构造Ad......
答案就在这里:Android:关于ListView的内存泄漏问题
解决方案四:
getView( )方法中 写的有问题,
一般需要引入一个listv的布局item
View view=View..inflate(this,R.layout.list_item, null);
textview=view.findViewById(R.id.TextView);
然后在设置值;
给你参考一下
解决方案六:
把布局贴出来,是不是item布局错了
解决方案七:
你的适配器中都没有应用你的布局,convertview =LayoutInflater.from(MainActivity.this).inflate(R.layout.list_item, null); tv = (TextView) convertView.findViewById(R.id.tv);。。。。。。 return convertView;
解决方案八:
getView中 需要用convertview 这个参数去convertview.findbyId().找到对应的id