Android - добавить кнопку в ListView программно - PullRequest
2 голосов
/ 14 октября 2011

У меня есть просмотр списка в линейном макете, где мне нужно программно добавить кнопку. Я перепробовал несколько учебных заведений, но никого не хватило, просто не получалось. Знаете ли вы какое-нибудь решение?

Редактировать: я просто хочу, чтобы одна кнопка была добавлена ​​программно и мой список (нет кнопки в списке). Я не могу добавить кнопку в моей деятельности программно.

Редактировать:

<?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">
<TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/uss"
/>   
<ListView 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/list"
    android:focusable="false"
    android:focusableInTouchMode="false"

/>  

Ответы [ 2 ]

2 голосов
/ 14 октября 2011

Вам понадобится реализовать собственный адаптер. Вы бы добавили свою кнопку в строки ListView в методе getView (). Это будет выглядеть примерно так:

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

    View v;
    if (convertView == null)
        v = LayoutInflater.from(context).inflate(R.layout.row, parent, false);
    else
        v = convertView;

    if(position == 0){
        Button button = new Button();
        v.add( button );    
    }

   return v;
} 

ОБНОВЛЕНИЕ: В ответах автора на мои вопросы в комментариях вышеупомянутое решение поместит кнопку в первый столбец ListView.

Если то, что вы пытаетесь сделать, это расположить кнопку над списком, чтобы она не прокручивалась, тогда я бы поместил еще один LinearLayout в ваш существующий макет, который просто содержит TextView (id-uss). Таким образом, вы можете добавить свою кнопку в конец этого LinearLayout.

0 голосов
/ 14 октября 2011

Если вам нужно добавить кнопку в каждую строку списка, то вам нужно перейти к пользовательскому адаптеру, который использует указанный вами XML-файл пользовательского элемента списка.

и если вам нужна только одна кнопка под вашимlistview, вам нужно получить линейный макет, где вы добавили listview в xml-файл, и вы можете добавить к нему свою кнопку, используя mLinearLayout.add(mButton);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...