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的内存泄漏问题
----------------------你好,人类,我是来自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方法返回值别写空