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的内存泄漏问题
----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。
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
你这个适配器写的,你那个getView()返回的是一个item项,你这个返回一个textview是个什么鬼。因为写convertview =LayoutInflater.from(MainActivity.this).inflate(R.layout.list_item, null); tv = (TextView) convertView.findViewById(R.id.tv);。。。。。。 return convertView;
适配器的getObject方法返回值别写空