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的使用,
        这个代码要怎么改

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;
            }

            可以对比一下代码,你写了有几个不对的地方;

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

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

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

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

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

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;
        }

        可以对比一下代码,你写了有几个不对的地方;

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;
    }

    可以对比一下代码,你写了有几个不对的地方;

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;
    }

    然后你可以对比一下代码,你写的代码有几个地方是不正确的 ,;

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

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

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