软件开发-安卓,baseadapter,报错,求指教

问题描述

安卓,baseadapter,报错,求指教

logcat如下:
开发-安卓,baseadapter,报错,求指教-安卓baseadapter">

content_main:

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent"
    android:layout_height="match_parent"

    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:showIn="@layout/activity_main" tools:context=".MainActivity">

    <ListView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/listview"/>
</LinearLayout>

listview的布局:

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textview1"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textview2"/>

</LinearLayout>

baseadapter的代码:

 public class MyAdapter extends BaseAdapter
{
    Context context;
    String[] tx1;
    String[] tx2;
    MyAdapter(Context context,String[] tx1,String[] tx2)
    {
        this.context=context;
        this.tx1=tx1;
        this.tx2=tx2;
    }
    @Override
    public int getCount()
    {
        return tx1.length;
    }
    @Override
    public Object getItem(int position)
    {
        return tx1[position];
    }
    @Override
    public long getItemId(int position)
    {
        return 0;
    }

    @Override
    public View getView(int position,View v,ViewGroup viewGroup)
    {
        View view;
        ViewHolder viewHolder;
        if(v == null) {
            view = LayoutInflater.from(context).inflate(R.layout.listview, viewGroup);
            ;

            TextView t1 = (TextView) view.findViewById(R.id.textview1);
            TextView t2 = (TextView) view.findViewById((R.id.textview2));

            t1.setText(tx1[position]);
            t2.setText(tx2[position]);

            viewHolder=new ViewHolder(t1,t2);
            view.setTag(viewHolder);
        }
        else
        {
            view=v;
            viewHolder=(ViewHolder)view.getTag();
        }

        return v;
    }

    class ViewHolder
    {
        public TextView t1;
        public TextView t2;
        ViewHolder(TextView t1,TextView t2)
        {
            this.t1=t1;
            this.t2=t2;
        }
    }

}

mainactivity中与listview有关的也就是:

ListView listView;
    String[] str1={"这是1","这是2","这是3","这是4","这是5"};
    String[] str2={"this is 1","this is 2","this is 3","this is 4","this is 5"};
 listView=(ListView)super.findViewById(R.id.listview);
        MyAdapter myAdapter=new MyAdapter(this,str1,str2);
        listView.setAdapter(myAdapter);

求指教,怎么解决?

解决方案

settext放到return上面去,

解决方案二:

 if(v == null) {
            view = LayoutInflater.from(context).inflate(R.layout.listview, viewGroup);
改成
if(v == null) {
            view = LayoutInflater.from(context).inflate(R.layout.listview, null);//传入viewGroup,则布局方式的layout不对

解决方案三:

view = LayoutInflater.from(context).inflate(R.layout.listview, viewGroup); viewGroup是默认把父布局ListView传进去,
你inflate生成的View会被通过addView的方式add到父布局也就是ListView里面,listView是不可以addView的,
listView是AdapterView的子类,所以会报错
改成 view = LayoutInflater.from(context).inflate(R.layout.listview, null);
或者 view = LayoutInflater.from(context).inflate(R.layout.listview, viewGroup,false);都可以

解决方案四:

view = LayoutInflater.from(context).inflate(R.layout.listview, viewGroup);
;

                    viewGroup 改为  null 就好了
时间: 2024-11-03 16:53:50

软件开发-安卓,baseadapter,报错,求指教的相关文章

spring mvc-想把用户名存在session中 在方法中加request参数后运行报错 求指教~

问题描述 想把用户名存在session中 在方法中加request参数后运行报错 求指教~ 我用的是spring+hibernate~ 修改后: public class LoginAction extends SimpleFormController{ private Login login; private String viewPage; private String successPage; //实现onSubmit()方法 public ModelAndView onSubmit(Ob

Delphi xe4开发的软件, 出现各类型的报错, 求解决或查错方案.

问题描述 Delphi xe4开发的软件, 出现各类型的报错, 求解决或查错方案. 属于2次开发, 程序代码接手后. 在使用途中出现各种报错, 有各种内存报错, 或其他都是非常难重现的错误, 目前安装了EurekaLog, 但仍然无法定位, 会跳到一些莫明其妙的代码上. 程序属于比较大型的. 客户端是DELPHI开发, 服务端是C++开发, 客户端是单个EXE的结构, 带少量第3方的DLL. 更换过fastmm, 用过sharemem之类无效. 程序内部也有多个线程, 且有多个timer. 定位

textview-Android开发动态TextView问题报错求解答

问题描述 Android开发动态TextView问题报错求解答 两个画图界面,我想在第一个界面上加入一个TextView动态显示当前整点温度数据的数值 下面这个是XML文件控件声明 下面是我画折线的类 计算textview高度">下面是我在这个类下面写的setText![然后安装后画曲线的界面就不动了,控件也不显示文本,最后强制退出,下面是报错内容 我想问这里为什么会出错,我要实现这个功能要怎么办才可以!!我猜出错的原因是不是不能在这个类下面写setText()方法啊?求解答 解决方案 S

android-网上的方法都试过了,软件也重装了,Android studio 报错,求解决,在线等..

问题描述 网上的方法都试过了,软件也重装了,Android studio 报错,求解决,在线等.. Error:Unable to start the daemon process. This problem might be caused by incorrect configuration of the daemon. For example, an unrecognized jvm option is used. Please refer to the user guide chapter

ocket xception-android开发,调用webservice报错,求指导一下,感激不尽

问题描述 android开发,调用webservice报错,求指导一下,感激不尽 java.net.SocketException: sendto failed: ECONNRESET (Connection reset by peer) 解决方案 网络问题,检查下通讯,ip端口等等.

cocos2d x-在Xcode中安装cocos2d-x老报错求大神指教

问题描述 在Xcode中安装cocos2d-x老报错求大神指教 taorenwangtekiMacBook-Pro:~ taorenwang$ cd /Users/taorenwang/Desktop taorenwangtekiMacBook-Pro:Desktop taorenwang$ cd cocos2d-2.1rc0-x-2.1.3/ taorenwangtekiMacBook-Pro:cocos2d-2.1rc0-x-2.1.3 taorenwang$ ./install-templ

android-求大神解答,自定义baseAdapter报错

问题描述 求大神解答,自定义baseAdapter报错 这是我的源码 package com.example.administrator.robot; import android.app.Activity;import android.content.Context;import android.support.v7.app.ActionBarActivity;import android.os.Bundle;import android.util.Log;import android.vie

node js-linux下安装node.js报错,求大神解决

问题描述 linux下安装node.js报错,求大神解决 目前正要部署应用到linux服务器上 在安装node.js时各种报错,首先是python版本问题,后来装了python2.7.5, 在执行./configure时,出现这个错误 ERROR:root:code for hash md5 was not found. Traceback (most recent call last): File "/usr/local/lib/python2.7/hashlib.py", line

Genymoation安装之后打开虚拟机报错求大神指点

问题描述 Genymoation安装之后打开虚拟机报错求大神指点 错误是这样的 求大神指点,谢谢 解决方案 多启动几次,如果还不行,就启动virtualbox,在里面看看对应的虚拟机是否正常可以启动,或者先关掉它

tomcat启动报错-SSH + Oracle 整合开发 启动服务报错,运行查询操作,没影响

问题描述 SSH + Oracle 整合开发 启动服务报错,运行查询操作,没影响 信息: Initializing Spring root WebApplicationContextlog4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).log4j:WARN Please initialize the log4j system properly.2013-1