wuhudamahua
2016-04-21 09:10
采纳率: 27.3%
浏览 1.4k

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;

}

}
}
不报错,但是安装到虚拟机上面就立刻崩溃

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

10条回答 默认 最新

  • visa杨 2016-04-21 09:44
    已采纳

    你这个适配器写的,你那个getView()返回的是一个item项,你这个返回一个textview是个什么鬼。因为写convertview =LayoutInflater.from(MainActivity.this).inflate(R.layout.list_item, null); tv = (TextView) convertView.findViewById(R.id.tv);。。。。。。 return convertView;

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • bdmh 2016-04-21 09:17

    奔溃,你先看看logcat的日志,里面会有显示的,根据具体错误找问题

    评论
    解决 无用
    打赏 举报
  • Robot-C 2016-04-21 09:22

    原创教程,转载请保留出处:http://www.eoeandroid.com/thread-72369-1-1.html

    最近有需求需要在listView中载入不同的listItem布局,开始没有使用convertView,加载了多个item后导致了内存泄露,所以回来研究convertView在多个listItem布局时的缓存及应用,并且和大家分享

    构造Ad......
    答案就在这里:Android:关于ListView的内存泄漏问题
    ----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。

    评论
    解决 无用
    打赏 举报
  • 落叶heart 2016-04-21 10:07

    getView( )方法中 写的有问题,
    一般需要引入一个listv的布局item
    View view=View..inflate(this,R.layout.list_item, null);
    textview=view.findViewById(R.id.TextView);
    然后在设置值;

    评论
    解决 无用
    打赏 举报
  • Mr. Hebin 2016-04-21 10:20

    图片说明

    给你参考一下

    评论
    解决 无用
    打赏 举报
  • AndroidCQC 2016-04-22 00:56

    把布局贴出来,是不是item布局错了

    评论
    解决 无用
    打赏 举报
  • pgc_tel 2016-04-22 06:52

    你的适配器中都没有应用你的布局,convertview =LayoutInflater.from(MainActivity.this).inflate(R.layout.list_item, null); tv = (TextView) convertView.findViewById(R.id.tv);。。。。。。 return convertView;

    评论
    解决 无用
    打赏 举报
  • 轩轩笔记 2016-05-23 13:14

    getView中 需要用convertview 这个参数去convertview.findbyId().找到对应的id

    评论
    解决 无用
    打赏 举报
  • qq_27578023 2016-06-05 14:27

    你这个适配器写的,你那个getView()返回的是一个item项,你这个返回一个textview是个什么鬼。因为写convertview =LayoutInflater.from(MainActivity.this).inflate(R.layout.list_item, null); tv = (TextView) convertView.findViewById(R.id.tv);。。。。。。 return convertView;

    评论
    解决 无用
    打赏 举报
  • smile_jml 2016-07-25 10:51

    适配器的getObject方法返回值别写空

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题