@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 直接套用就好了