wuhudamahua
wuhudamahua
2016-04-22 13:12
采纳率: 27.3%
浏览 2.0k

Android的listview问题中的adapter

@Override
public View getView(int position, View convertView, ViewGroup parent) {
convertView =LayoutInflater.from(MainActivity.this).inflate(R.layout.activity_main, null);

        if(convertView!=null)
        {
            textview=(TextView) convertView;
        }else
        {
            textview = (TextView) convertView.findViewById(R.id.textview);
        }
        一直抱linearlayout不能转换为textview,如果我要实现convertView的使用,
        这个代码要怎么改
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

12条回答 默认 最新

  • q610098308
    恋恋西风 2016-04-22 16:17
    已采纳

    1.你需要新建一个布局:
    例如,布局中只有一个TextView:
    listview_cell.xml
    <?xml version="1.0" encoding="utf-8"?>
    android:id="@+id/textView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center_horizontal"
    android:text="New Text" />

    adapter 代码里要这么写
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        if(convertView!=null)
        {
            textview=(TextView) convertView;//上面布局中只有一个TextView,可以强转,否则不可以;
        }else
        {
                    convertView =LayoutInflater.from(MainActivity.this).inflate(R.layout.listview_cell, null);
            textview = (TextView) convertView;
        }
    
                return convertView;
                }
    
                可以对比一下代码,你写了有几个不对的地方;
    
    点赞 评论
  • freedom_wings5
    freedom_wings5 2016-04-22 14:02

    笨拙的在下表示看不明白你把linearlayout转换为textview那里是想干什么,也没见过有人要把linearlayout转换为textview

    点赞 评论
  • zhuod
    我用py 2016-04-22 14:16

    activity_main这个布局的只有一层textview吗,如果不是,你这样强转肯定出问题,而且你这样写的代码非常不规范,几乎不会有人像你这样写

    点赞 评论
  • zhuod
    我用py 2016-04-22 14:17

    activity_main这个布局的只有一层textview吗,如果不是,你这样强转肯定出问题,而且你这样写的代码非常不规范,几乎不会有人像你这样写

    点赞 评论
  • baiyuliang2013
    白玉梁 2016-05-06 02:17

    看listview_cell布局,最外层只有是TextVIew才能这样干

    点赞 评论
  • sinat_21102069
    ChangeM丶 2016-05-15 09:46

    你这个逻辑有问题啊,找找网上代码吧,有很多

    点赞 评论
  • qq_27578023
    qq_27578023 2016-06-04 08:19

    1.你需要新建一个布局:
    例如,布局中只有一个TextView:
    listview_cell.xml
    <?xml version="1.0" encoding="utf-8"?>
    android:id="@+id/textView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center_horizontal"
    android:text="New Text" />

    adapter 代码里要这么写
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

    if(convertView!=null)
    {
        textview=(TextView) convertView;//上面布局中只有一个TextView,可以强转,否则不可以;
    }else
    {
                convertView =LayoutInflater.from(MainActivity.this).inflate(R.layout.listview_cell, null);
        textview = (TextView) convertView;
    }
    
            return convertView;
            }
    
            可以对比一下代码,你写了有几个不对的地方;
    
    点赞 评论
  • qq_35182702
    qq_35182702 2016-06-11 14:48

    1.你需要新建一个布局:
    例如,布局中只有一个TextView:
    listview_cell.xml
    <?xml version="1.0" encoding="utf-8"?>
    android:id="@+id/textView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center_horizontal"
    android:text="New Text" />

    adapter 代码里要这么写
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

    if(convertView!=null)
    {
    textview=(TextView) convertView;//上面布局中只有一个TextView,可以强转,否则不可以;
    }else
    {
    convertView =LayoutInflater.from(MainActivity.this).inflate(R.layout.listview_cell, null);
    textview = (TextView) convertView;
    }

        return convertView;
        }
    
        可以对比一下代码,你写了有几个不对的地方;
    
    点赞 评论
  • qq_35182702
    qq_35182702 2016-06-11 14:48

    1.你需要新建一个布局:
    例如,布局中只有一个TextView:
    listview_cell.xml
    <?xml version="1.0" encoding="utf-8"?>
    android:id="@+id/textView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center_horizontal"
    android:text="New Text" />

    适配器里面的 代码里要这么写
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

    if(convertView!=null)
    {
    textview=(TextView) convertView;//上面布局中只有一个TextView,可以强转,否则不可以;
    }else
    {
    convertView =LayoutInflater.from(MainActivity.this).inflate(R.layout.listview_cell, null);
    textview = (TextView) convertView;
    }

        return convertView;
        }
    
        然后你可以对比一下代码,你写的代码有几个地方是不正确的 ,;
    
    点赞 评论
  • oSanYeCao1234567
    RoidCoder 2016-07-26 08:15

    因为你的布局文件的根布局不是TextView,应该是linearlayout,导致强转失败。可以使用convertView的findViewById方法找到该TextVIew

    点赞 评论
  • qq_21206775
    qq_21206775 2016-08-31 06:03

    为什么一定要转为textview呢,在lineralayout放一个textview不就好了,

    点赞 评论
  • qq_32138419
    彭八九 2016-09-27 03:38

    不太理解楼主的想法 建议下载一个简单的adapter 直接套用就好了

    点赞 评论

相关推荐