2

我在做什么:

我正在编写一个与地图和路线等有关的 android 应用程序。在应用程序的主屏幕上,有一个按钮可以打开收藏夹页面。收藏页面由以下 xml 布局组成。

layout_favorites.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/mainscreen2">
        <HorizontalScrollView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:scrollbarSize="0dp"
        >
            <LinearLayout
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">
                <ImageView
                android:id="@+id/imageViewfavorites"
                android:scaleType="fitEnd"
                android:layout_marginTop="10dp"
                android:layout_marginBottom="3dp"
                android:layout_marginLeft="3dp"
                android:layout_marginRight="3dp"
                android:layout_width="60px"
                android:layout_height="60px"
                android:src="@drawable/android_button_44_2"/>
                <TextView
                android:id="@+id/textview_favorites"
                android:background="@null"
                android:scaleType="fitEnd"
                android:layout_marginTop="15dp"
                android:layout_marginBottom="3dp"
                android:layout_marginLeft="3dp"
                android:layout_marginRight="3dp"
                android:layout_width="wrap_content"
                android:layout_height="60px"
                android:textSize="35sp"
                android:textColor="#000000"
                android:text="Favorites"/>
            </LinearLayout>
        </HorizontalScrollView>
        <ListView
            android:id="@+id/listview_favorites"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_marginTop="45dp"
            android:cacheColorHint="#00000000"
            >
            </ListView>
</LinearLayout>

这工作正常,不用担心。在顶部布局中,您会看到有一个 ListView。我想用如下所示的行填充 ListView:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:padding="5dip" >
        <ImageView
            android:id="@+id/route_image"
            android:layout_width="50dip"
            android:layout_height="50dip"/>
    <TextView
        android:id="@+id/route_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/route_image"
        android:layout_toRightOf="@+id/route_image"
        android:textColor="#000000"
        android:textSize="15dip"
        android:textStyle="bold"/>
    <TextView
        android:id="@+id/route_author"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/route_title"
        android:textColor="#000000"
        android:textSize="10dip"
        android:layout_marginTop="1dip"
        android:layout_toRightOf="@+id/thumbnail"/>
    <TextView
        android:id="@+id/route_length"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignTop="@id/route_title"
        android:gravity="right"
        android:layout_marginRight="5dip"
        android:textSize="10dip"
        android:textColor="#10bcc9"
        android:textStyle="bold"/>
     <ImageView 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:src="@drawable/arrow"/>
</RelativeLayout>

所以最后,它应该看起来像这样:

(用油漆绘制的图像:p) http://s9.postimage.org/cgcahc1i7/Untitled.png

或者

http://imageshack.us/photo/my-images/694/67362201.png/

现在,问题出在此处。它不显示。我正在使用扩展 BaseAdapter 类的自定义适配器来处理 Listview 和膨胀视图等。我将发布 Adapater,然后发布收藏夹屏幕的 Activity。

适配器类:

import android.content.Context;
import android.graphics.drawable.Drawable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;


/**
 *
 * @author Gideon
 */
public class Adapter_Maplist_Page_Favorites extends BaseAdapter
{
    //----------------------------------------
    //  Variables
    //----------------------------------------
        private Context context;
        private final Drawable[] drawables;
        private final String[] titles;
        private final String[] authors;
        private final String[] durations;
    //----------------------------------------

    //----------------------------------------
    //  Methods
    //----------------------------------------


        public Adapter_Maplist_Page_Favorites(Context context ,String[] titles,String[] authors,String[] durations,Drawable[] drawables)
        {

            this.context = context;
            this.titles = titles;
            this.authors = authors;
            this.durations = durations;
            this.drawables = drawables;
        }

        public View getView(int position, View convertView, ViewGroup parent)
        {

                LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            View rowView = inflater.inflate(R.layout.layout_favorites_row, parent);


                ImageView map_image = (ImageView) rowView.findViewById(R.id.route_image);
            TextView map_title = (TextView) rowView.findViewById(R.id.route_title);
            TextView map_author = (TextView) rowView.findViewById(R.id.route_author);
                TextView map_length = (TextView) rowView.findViewById(R.id.route_length);
                ImageView map_image_arrow = (ImageView) rowView.findViewById(R.drawable.arrow);

                map_image.setBackgroundDrawable(drawables[position]);
                map_title.setText(titles[position]);
                map_author.setText(authors[position]);
                map_length.setText(durations[position]);
                map_image_arrow.setBackgroundDrawable(map_image_arrow.getBackground());


        return rowView;
    }
        //----------------------------------------

        //----------------------------------------
        // Not Implemented
        //----------------------------------------
        public Object getItem(int arg0)
        {
            return null;
        }

        public long getItemId(int position)
        {
           return 0;
        }

        public int getCount()
        {
            throw new UnsupportedOperationException("Not supported yet.");
        }
            //----------------------------------------
    //----------------------------------------
}

收藏活动课:

import android.app.ListActivity;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.Toast;



/**
 *
 * @author Gideon
 */
public class Page_Favorites extends ListActivity
{
    //---------------------------------------------------------------------------------------------------------------
    //Hierdie info sal in die toekoms vanaf die databsae moet kom of net vervang word met die database entries in for loops etc. (This info will be loaded from the database in the future)
    //---------------------------------------------------------------------------------------------------------------
    public final String[] map_titles = {"Route 1","Route 2","Route 3","Route 4","Route 5","Route 6"};
    public final String[] map_authors = {"Jannie","Sannie","Bennie","Kosie","Gideon","Alex"};
    public final String[] map_lengths = {"42km","2km","21.5km","8km","34km","23km"};
    ImageView iv = (ImageView) findViewById(R.drawable.route_image_1);
    public final Drawable[] map_images = {iv.getBackground(),iv.getBackground(),iv.getBackground(),iv.getBackground(),iv.getBackground(),iv.getBackground()};
    //---------------------------------------------------------------------------------------------------------------

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle icicle)
    {
        super.onCreate(icicle);
        overridePendingTransition(R.layout.animation_fadein, R.layout.animation_fadeout);
        setContentView(R.layout.layout_favorites);
        // ToDo add your GUI initialization code here

        ListView list = (ListView) findViewById(R.id.listview_favorites);
        list.setAdapter(new Adapter_Maplist_Page_Favorites(this, map_titles, map_authors, map_lengths, map_images));

        list.setOnItemClickListener(new OnItemClickListener()
        {
            public void onItemClick(AdapterView<?> parent, View v, int position, long id)
            {
               Toast.makeText(Page_Favorites.this, "" + position, Toast.LENGTH_SHORT).show();
            }
        });
    }
}

当我单击按钮启动收藏夹屏幕/活动并创建 listview 时,应用程序退出并出现错误(被迫退出......)。任何帮助或想法将不胜感激。谢谢。

编辑:

亚行日志错误:

22:54:21.505    24082   ERROR   RedPheasant.LoggerApp   AndroidRuntime  FATAL EXCEPTION: main
22:54:21.505    24082   ERROR   RedPheasant.LoggerApp   AndroidRuntime  java.lang.RuntimeException: Unable to start activity ComponentInfo{RedPheasant.LoggerApp/RedPheasant.LoggerApp.Page_Favorites}: java.lang.NullPointerException
22:54:21.505    24082   ERROR   RedPheasant.LoggerApp   AndroidRuntime      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651)
22:54:21.505    24082   ERROR   RedPheasant.LoggerApp   AndroidRuntime      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
22:54:21.505    24082   ERROR   RedPheasant.LoggerApp   AndroidRuntime      at android.app.ActivityThread.access$1500(ActivityThread.java:117)
22:54:21.505    24082   ERROR   RedPheasant.LoggerApp   AndroidRuntime      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
22:54:21.505    24082   ERROR   RedPheasant.LoggerApp   AndroidRuntime      at android.os.Handler.dispatchMessage(Handler.java:99)
22:54:21.505    24082   ERROR   RedPheasant.LoggerApp   AndroidRuntime      at android.os.Looper.loop(Looper.java:123)
22:54:21.505    24082   ERROR   RedPheasant.LoggerApp   AndroidRuntime      at android.app.ActivityThread.main(ActivityThread.java:3687)
22:54:21.505    24082   ERROR   RedPheasant.LoggerApp   AndroidRuntime      at java.lang.reflect.Method.invokeNative(Native Method)
22:54:21.505    24082   ERROR   RedPheasant.LoggerApp   AndroidRuntime      at java.lang.reflect.Method.invoke(Method.java:507)
22:54:21.505    24082   ERROR   RedPheasant.LoggerApp   AndroidRuntime      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
22:54:21.505    24082   ERROR   RedPheasant.LoggerApp   AndroidRuntime      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
22:54:21.505    24082   ERROR   RedPheasant.LoggerApp   AndroidRuntime      at dalvik.system.NativeStart.main(Native Method)
22:54:21.505    24082   ERROR   RedPheasant.LoggerApp   AndroidRuntime  Caused by: java.lang.NullPointerException
22:54:21.505    24082   ERROR   RedPheasant.LoggerApp   AndroidRuntime      at RedPheasant.LoggerApp.Page_Favorites.onCreate(Page_Favorites.java:48)
22:54:21.505    24082   ERROR   RedPheasant.LoggerApp   AndroidRuntime      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
22:54:21.505    24082   ERROR   RedPheasant.LoggerApp   AndroidRuntime      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
22:54:21.505    24082   ERROR   RedPheasant.LoggerApp   AndroidRuntime      ... 11 more
22:54:21.515    212 ERROR   #212        Dumpstate > /data/log/dumpstate_app_error

另外,修复了这部分:

public int getCount()
    {
       if(titles == null)
        {
            return 0;
        }
        return titles.length;
    }

仍然遇到同样的问题。 编辑2:

好的,伙计们,谢谢到目前为止的所有帮助......

我还改变了这一点:

新的收藏页面活动(修改):

public class Page_Favorites extends Activity
{




    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle icicle)
    {
        super.onCreate(icicle);
        overridePendingTransition(R.layout.animation_fadein, R.layout.animation_fadeout);
        setContentView(R.layout.layout_favorites);
        // ToDo add your GUI initialization code here

        //---------------------------------------------------------------------------------------------------------------
        //Hierdie info sal in die toekoms vanaf die databsae moet kom of net vervang word met die database entries in for loops etc.
        //---------------------------------------------------------------------------------------------------------------


        String[] map_titles = {"Route 1","Route 2","Route 3","Route 4","Route 5","Route 6"};
        String[] map_authors = {"Jannie","Sannie","Bennie","Kosie","Gideon","Alex"};
        String[] map_lengths = {"42km","2km","21.5km","8km","34km","23km"};
        //ImageView iv = (ImageView) findViewById(R.drawable.route_image_1);
        Drawable d = getResources().getDrawable(R.drawable.route_image_1);
        Drawable[] map_images = {d,d,d,d,d,d};
        Drawable d2 = getResources().getDrawable(R.drawable.arrow);
       //---------------------------------------------------------------------------------------------------------------

        ListView list = (ListView) findViewById(R.id.listview_favorites);
        list.setAdapter(new Adapter_Maplist_Page_Favorites(this, map_titles, map_authors, map_lengths, map_images,d2));//lika a boss itches

        list.setOnItemClickListener(new OnItemClickListener()
        {
            public void onItemClick(AdapterView<?> parent, View v, int position, long id)
            {
               Toast.makeText(Page_Favorites.this, "" + position, Toast.LENGTH_SHORT).show();
            }
        });
    }
}

新的适配器类(修改):

public class Adapter_Maplist_Page_Favorites extends BaseAdapter
{
    //----------------------------------------
    //  Variables
    //----------------------------------------
        private Context context;
        private final Drawable[] drawables;
        private final String[] titles;
        private final String[] authors;
        private final String[] durations;
        private final Drawable d;
    //----------------------------------------

    //----------------------------------------
    //  Methods
    //----------------------------------------


        public Adapter_Maplist_Page_Favorites(Context context ,String[] titles,String[] authors,String[] durations,Drawable[] drawables,Drawable d)
        {

            this.context = context;
            this.titles = titles;
            this.authors = authors;
            this.durations = durations;
            this.drawables = drawables;
            this.d = d;
        }
        //----------------------------------------


        public View getView(int position, View convertView, ViewGroup parent)
        {

                LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View rowView = inflater.inflate(R.layout.layout_favorites_row, parent);


                ImageView map_image = (ImageView) rowView.findViewById(R.id.route_image);
        TextView map_title = (TextView) rowView.findViewById(R.id.route_title);
        TextView map_author = (TextView) rowView.findViewById(R.id.route_author);
                TextView map_length = (TextView) rowView.findViewById(R.id.route_length);

                ImageView map_image_arrow = (ImageView) rowView.findViewById(R.id.route_arrow);

                map_image.setBackgroundDrawable(drawables[position]);
                map_title.setText(titles[position]);
                map_author.setText(authors[position]);
                map_length.setText(durations[position]);
                map_image_arrow.setBackgroundDrawable(d);


        return rowView;
    }
        //----------------------------------------

        //----------------------------------------
        // Not Implemented
        //----------------------------------------
        public Object getItem(int arg0)
        {
            return null;
        }

        public long getItemId(int position)
        {
           return 0;
        }

        public int getCount()
        {
           if(titles == null)
            {
                return 0;
            }
            return titles.length;
        }
            //----------------------------------------
    //----------------------------------------
}

以及新的错误日志广告博客:

23:15:15.839    24746   ERROR   RedPheasant.LoggerApp   AndroidRuntime  FATAL EXCEPTION: main
23:15:15.839    24746   ERROR   RedPheasant.LoggerApp   AndroidRuntime  java.lang.UnsupportedOperationException: addView(View, LayoutParams) is not supported in AdapterView
23:15:15.839    24746   ERROR   RedPheasant.LoggerApp   AndroidRuntime      at android.widget.AdapterView.addView(AdapterView.java:461)
23:15:15.839    24746   ERROR   RedPheasant.LoggerApp   AndroidRuntime      at android.view.LayoutInflater.inflate(LayoutInflater.java:416)
23:15:15.839    24746   ERROR   RedPheasant.LoggerApp   AndroidRuntime      at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
23:15:15.839    24746   ERROR   RedPheasant.LoggerApp   AndroidRuntime      at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
23:15:15.839    24746   ERROR   RedPheasant.LoggerApp   AndroidRuntime      at RedPheasant.LoggerApp.Adapter_Maplist_Page_Favorites.getView(Adapter_Maplist_Page_Favorites.java:73)
23:15:15.839    24746   ERROR   RedPheasant.LoggerApp   AndroidRuntime      at android.widget.AbsListView.obtainView(AbsListView.java:1554)
23:15:15.839    24746   ERROR   RedPheasant.LoggerApp   AndroidRuntime      at android.widget.ListView.makeAndAddView(ListView.java:1793)
23:15:15.839    24746   ERROR   RedPheasant.LoggerApp   AndroidRuntime      at android.widget.ListView.fillDown(ListView.java:718)
23:15:15.839    24746   ERROR   RedPheasant.LoggerApp   AndroidRuntime      at android.widget.ListView.fillFromTop(ListView.java:775)
23:15:15.839    24746   ERROR   RedPheasant.LoggerApp   AndroidRuntime      at android.widget.ListView.layoutChildren(ListView.java:1646)
23:15:15.839    24746   ERROR   RedPheasant.LoggerApp   AndroidRuntime      at android.widget.AbsListView.onLayout(AbsListView.java:1384)
23:15:15.839    24746   ERROR   RedPheasant.LoggerApp   AndroidRuntime      at android.view.View.layout(View.java:7228)
23:15:15.839    24746   ERROR   RedPheasant.LoggerApp   AndroidRuntime      at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1254)
23:15:15.839    24746   ERROR   RedPheasant.LoggerApp   AndroidRuntime      at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1130)
23:15:15.839    24746   ERROR   RedPheasant.LoggerApp   AndroidRuntime      at android.widget.LinearLayout.onLayout(LinearLayout.java:1047)
23:15:15.839    24746   ERROR   RedPheasant.LoggerApp   AndroidRuntime      at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
23:15:15.839    24746   ERROR   RedPheasant.LoggerApp   AndroidRuntime      at android.view.ViewRoot.performTraversals(ViewRoot.java:1147)
23:15:15.839    24746   ERROR   RedPheasant.LoggerApp   AndroidRuntime      at android.view.ViewRoot.handleMessage(ViewRoot.java:1867)
23:15:15.839    24746   ERROR   RedPheasant.LoggerApp   AndroidRuntime      at android.os.Handler.dispatchMessage(Handler.java:99)
23:15:15.839    24746   ERROR   RedPheasant.LoggerApp   AndroidRuntime      at android.os.Looper.loop(Looper.java:123)
23:15:15.839    24746   ERROR   RedPheasant.LoggerApp   AndroidRuntime      at android.app.ActivityThread.main(ActivityThread.java:3687)
23:15:15.839    24746   ERROR   RedPheasant.LoggerApp   AndroidRuntime      at java.lang.reflect.Method.invokeNative(Native Method)
23:15:15.839    24746   ERROR   RedPheasant.LoggerApp   AndroidRuntime      at java.lang.reflect.Method.invoke(Method.java:507)
23:15:15.839    24746   ERROR   RedPheasant.LoggerApp   AndroidRuntime      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
23:15:15.839    24746   ERROR   RedPheasant.LoggerApp   AndroidRuntime      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
23:15:15.839    24746   ERROR   RedPheasant.LoggerApp   AndroidRuntime      at dalvik.system.NativeStart.main(Native Method)
23:15:15.849    212 ERROR   #212        Dumpstate > /data/log/dumpstate_app_error

到目前为止,谢谢您的帮助...尽管仍然遇到相同的错误。

更新:

我猜这是我现在的主要问题:

java.lang.UnsupportedOperationException: addView(View, LayoutParams) is not supported in AdapterView

我猜这与不支持视图的适配器有关。我有点困惑 :p 大声笑。有任何想法吗。

最终编辑 - 为所有帮助人员解决了谢谢。它终于工作了,看起来很棒。

主要问题是我将可绘制对象分配给 ImageViews 的方式在进行充气时导致问题。感谢 Sam 指出这一点。另一个主要问题是我必须在 inflate 方法中添加 false 参数才能不将其复制到根目录。感谢 Angelo 指出这一点。

4

4 回答 4

3

如果没有 LogCat,我们只能猜测您有什么错误......

1)您正在扩展一个 ListActivity:

public class Page_Favorites extends ListActivity

要求您有一个 ListView,其中android:id="@android:id/list"包含您传递给 setContentView() 的布局中的属性。我只是建议你只扩展一个活动:

public class Page_Favorites extends Activity

因为您当前的代码不依赖于 ListActivity。

2)断章取义:

ImageView iv = (ImageView) findViewById(R.drawable.route_image_1);
public final Drawable[] map_images = {iv.getBackground(),iv.getBackground(),iv.getBackground(),iv.getBackground(),iv.getBackground(),iv.getBackground()};

在创建 Activity 之前不能引用 findViewById(),这应该在 setContentView() 之后的 onCreate() 中完成。

3)你应该像这样将你的drawable加载到一个ImageView中:

ImageView iv = (ImageView) findViewById(R.id.imageViewfavorites);
iv.setImageResource(R.drawables.route_image_1);

我猜到你想要图像的位置......这是你的意思吗?

并且已经有足够多的人对 getCount() 发表了评论,所以我不会重复它。

4)在适配器的 getView() 中,更改:

View rowView = inflater.inflate(R.layout.layout_favorites_row, parent);

对此:

View rowView = inflater.inflate(R.layout.layout_favorites_row, parent, false);
于 2012-07-11T20:34:46.910 回答
1

为什么你有getCount()方法,它应该返回一个抛出异常的 int 值?这似乎很尴尬。而不是你应该这样做:

public int getCount()
{
    return yourDataArray.size();
}

该方法负责您的 ListView 将拥有的行数,即,如果yourDataArray的大小 = 7,这意味着您将在 ListView 中拥有 7 行。

编辑:

这是您的解决方案:

  1. 将 getItem() 方法替换为:

     public Object getItem(int arg0)
     {
         return arg0;
     }
    
  2. 用下面的代码替换您的适配器 getView() 方法。

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View v = convertView;
        ViewHolder holder;
    
        if (v == null) {
             LayoutInflater vi = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
             View rowView = vi.inflate(R.layout.layout_favorites_row, null);
    
             ImageView map_image = (ImageView) rowView.findViewById(R.id.route_image);
             TextView map_title = (TextView) rowView.findViewById(R.id.route_title);
             TextView map_author = (TextView) rowView.findViewById(R.id.route_author);
             TextView map_length = (TextView) rowView.findViewById(R.id.route_length);
             ImageView map_image_arrow = (ImageView) rowView.findViewById(R.id.route_arrow);
    
            v.setTag(holder);
        }
        else {
            holder=(ViewHolder)v.getTag();
        }
    
        /** Define here the values to all the Views of the ViewHolder. */
        holder.map_image.setBackgroundDrawable(drawables[position]);
        holder.map_title.setText(titles[position]);
        holder.map_author.setText(authors[position]);
        holder.map_length.setText(durations[position]);
        holder.map_image_arrow.setBackgroundDrawable(d);
    
    return v;
    }
    

    使用 ViewHolder。确保您定义了一个 ViewHolder 内部类,例如:

    public static class ViewHolder {
          public TextView map_image ;
          public TextView map_title;
          public TextView map_author;
          public TextView map_length;
          public ImageView map_image_arrow;
    }
    
于 2012-07-11T20:40:08.610 回答
0

这是你的问题:

public int getCount()
    {
        throw new UnsupportedOperationException("Not supported yet.");
    }

您应该返回列表中的元素数。像这样的东西:

public int getCount()
    {
        if(title == null) {
           return 0;
        }
        return title.length;
    }

此外,Sam 所说的是另一个你应该解决的问题。

编辑看到您的适配器代码,我注意到您没有使用ViewHolder. 我强烈建议您使用它,因为它可以显着利用您的 listView 的性能。是一个很好的链接,它解释了有关 listView 的所有基础知识。上面的评论只是为了性能,但最好包含它。

从这个 SO question得分最高的答案。更改此行:

View rowView = inflater.inflate(R.layout.layout_favorites_row, parent);

有了这个:

View rowView = inflater.inflate(R.layout.layout_favorites_row, parent, false);

我认为你不会有任何问题。

于 2012-07-11T20:42:44.147 回答
0

检查此方法:

public int getCount()
        {
            throw new UnsupportedOperationException("Not supported yet.");
        }

返回值 > 0。它最近帮助了我。我不确定你的问题,但只是尝试。

于 2012-07-11T20:38:50.650 回答