重新绘制/更新baseadapter?

时间:2012-02-10 00:30:15

标签: android listview repaint baseadapter

我正在做一个应用程序,我需要有一个列表视图,其中每行有一些文本和一个图像按钮(仅用于删除每个按钮中具有相同图像的行)。在网上冲浪我得到了这段代码http://www.codemobiles.com/forum/viewtopic.php?t=876。由于此代码还有一个图像,我删除了图像的代码。一切都运作良好,但我正在努力做名单,我不能。我已经创建了一个arraylist并修改了该代码以便能够添加我的arraylist所以现在我可以添加或删除项目(并且该部分有效,因为我试图只运行这部分代码)但我无法“重新绘制” 。我的想法是,如果我有这个适配器和工作,让我们添加或删除一个项目并调用该方法,但如果我再创建一个调用者给创建者,你可以看到onCreate方法:

adap = new EfficientAdapter(this);
setListAdapter(adap);

没有错误,但没有消息。我该怎么做?另外我注意到如果我有0行没有

中的错误
public Object getItem(int position)

我返回一个空字符串数组,在这个方法中:

public int getCount()

我返回0然后我有一排。我该如何解决?

这两种方法的代码是:

    public int getCount() {
        // TODO Auto-generated method stub
                    // My arraylist is data2. Because of I didn't know how to do 
//an arraylist of n elements with 3 subelements in each element and then convert
// it to an array, I add every subelement one after one and then I don't mix subelements.
        String [] cambio = (String[]) data2.toArray(new String[data2.size()]);
        if (cambio.length == 0){
            return 0;
        }
        String[] cambio2 = new String[cambio.length/3];
        int j = 0;
        for(int i=0;i<(cambio.length/3);i=i+3){
                   //that's because I need an output of a single string array and
// I need my subelements in this order
            cambio2[j] = cambio[i+1] + " " + cambio[i+2] + "  " +  cambio[i];
            j++;
        }           
        return cambio2.length;
        //return data.length;
    }

    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub

        String [] cambio = (String[]) data2.toArray(new String[data2.size()]);
        if (cambio.length == 0){
            return cambio;
        }
        String[] cambio2 = new String[cambio.length/3];
        int j = 0;
        for(int i=0;i<(cambio.length/3);i=i+3){
            cambio2[j] = cambio[i+1] + " " + cambio[i+2] + "  " +  cambio[i];
            j++;
        }
        return cambio2[position];
        //return data[position];
    }

非常感谢你。

0 个答案:

没有答案