Вопрос по android-widget, android – Обработка события кнопки в каждой строке проблемы Listview

2

Я новичок в Android и пытаюсь разработать новое приложение для Android. Но я изо всех сил пытаюсь решить одну из проблем в моем проекте.

Я использую список, расширенный сbaseadapter и нужно добавить кнопку в каждой строке списка просмотра. Когда я нажимаю наbutton в любой строке списка я хочу удалить его. Однако, когда я делаю это, некоторые другие кнопки также удаляются из списка.

Как я могу решить эту проблему? Спасибо..

действительно, как вы получите помощь, если вы разместите код? Zamani
Пожалуйста, напишите код того, как вы удаляете кнопки. Comic Sans MS Lover
Это то, что я сделал до сих пор для метода getView () ... Я действительно понятия не имею, как я буду это делать ... я знал, что делает кнопки в каждой строке списка специфичными, я бы решил свою проблему. Emilla
Если у вас есть время, думаю, стоит посмотреть это & # x2012;Google I/O 2010 - The world of ListView. user942821

Ваш Ответ

2   ответа
1

В вашем адаптере вы прикрепляете некоторые данные к кнопкам, чтобы иметь возможность отличить одно от другого:

public class ExpAdapter extends ListAdapter {

    @Override
    public View getView(int groupPosition, boolean isExpanded,
            View convertView, ViewGroup parent) {
                /* SOME CODE HERE*/
        convertViewButton.setTag(buttonId);
        return convertView;
    }
                /* SOME CODE HERE*/
}

в своей деятельности вы отмечаете идентификатор кнопки как скрытый:

        public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
                int arg2, long arg3) {
            storageOfHiddenButtonsIds.add((Long)arg1.getTag());
        }};

и затем ListAdapter изменяется следующим образом:

@Override
public View getView(int groupPosition, boolean isExpanded,
        View convertView, ViewGroup parent) {
            /* SOME CODE HERE*/

    convertViewButton.setTag(buttonId);

    if(storageOfHiddenButtonsIds.contains(buttonId))
    {
      convertViewButton.setVisiblity(View.GONE);
    }
    return convertView;
}

и когда вы хотите, чтобы ваш adatper изменил вас, не забудьте позвонить

this.expAdapterAllTaks.notifyDataSetChanged();

Извините за любые ошибки в моем коде, но я просто хотел дать вам идею.

0

setOnItemClickListener не работает, если вы добавляете элемент как кнопку в каждый элемент списка. Решение это использованиеonClick в макете элемента списка (который вы используете в файле пользовательского адаптера) как

<ImageButton
        android:id="@+id/my_delete"
        android:onClick="onDeleteButtonClickListener" 
        ... and so on />

гдеonDeleteButtonClickListener это метод в упражнении, в котором вы устанавливаете адаптер в виде списка.

public void onDeleteButtonClickListener(View v) {
// your code
}

здесь listItem означает отдельный элемент строки ListView

Helpful Link: Кнопка в элементе ListView

попробуй это:androidforbeginners.blogspot.in/2010/03/… или вы можете поискать в интернете эту тему ... это, вероятно, поможет вам.I get solved by this link :)
Но мне кажется, что все кнопки в каждой строке списка имеют одинаковый идентификатор. Потому что, когда я пытаюсь получить v.getId (), он возвращает мне тот же ответ. Я действительно не знаю, как я собираюсь справиться с этим. Не могли бы вы быть более ясным о вашем решении? Emilla

Похожие вопросы