Перекрасить / обновить baseadapter? - PullRequest
2 голосов
/ 10 февраля 2012

Я делаю приложение, в котором мне нужно иметь просмотр списка, где в каждой строке есть какой-то текст и кнопка с изображением (только для удаления этой строки с одинаковым изображением в каждой кнопке). Занимаясь серфингом в сети, я получил этот код 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, но тогда у меня есть строка. как я могу это исправить?

Мой код для этих 2 методов:

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

Большое спасибо заранее.

...