How to put button in a Listview?

2

I have a template that I use in my projects, with list with image, I want instead of the image on the side of the button, only the button and title. See my adapter:

Adapter

public class AdapterListView extends BaseAdapter {

  private LayoutInflater mInflater;
  private ArrayList<Categoria> itens;

  public AdapterListView(Context context, ArrayList<Categoria> itens) {
    //Itens que preencheram o listview
    this.itens = itens;
    //responsavel por pegar o Layout do item.
    mInflater = LayoutInflater.from(context);
  }

  /**
   * Retorna a quantidade de itens
   *
   * @return
   */
  public int getCount() {
    return itens.size();
  }

  /**
   * Retorna o item de acordo com a posicao dele na tela.
   *
   * @param position
   * @return
   */
  public Categoria getItem(int position) {
    return itens.get(position);
  }

  /**
   * Sem implementação
   *
   * @param position
  * @return
  */
  public long getItemId(int position) {
    return position;
  }

  public View getView(int position, View view, ViewGroup parent) {
    //Pega o item de acordo com a posção.
    Categoria item = itens.get(position);
    //infla o layout para podermos preencher os dados
    view = mInflater.inflate(R.layout.item_list, null);

    //atravez do layout pego pelo LayoutInflater, pegamos cada id relacionado
    //ao item e definimos as informações.
    ((TextView) view.findViewById(R.id.text)).setText(item.getTexto());
    ((ImageView) view.findViewById(R.id.imagemview)).setImageResource(item.getIconeRid());
  //  ((TextView) view.findViewById(R.id.subtitulo)).setText(item.getSubtitulo());

    return view;
  }
}

Layout

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"

  android:orientation="horizontal">

  <LinearLayout 
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:padding="5sp">

    <ImageView
        android:id="@+id/imagemview"
        android:layout_width="50dp"
        android:layout_height="50dp"
          android:layout_marginLeft="5sp"
        />

    <TextView
        android:id="@+id/text"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:textSize="20dp"
        android:layout_marginLeft="15sp"
        android:textStyle="bold"

        android:gravity="center_vertical"
        android:textColor="#FF000000" />    
  </LinearLayout>

I tried to just change ((ImageView) to ((Button) , but it did not work.

    
asked by anonymous 23.01.2015 / 15:31

1 answer

2

If it is to replace ImageView with Button you will also have to replace the setImageResource method with one that Button has as setText .

//((ImageView) view.findViewById(R.id.imagemview)).setImageResource(item.getIconeRid());
((Button) view.findViewById(R.id.imagemview)).setText("meu botão");

and use setOnClickListener to capture the event.

If you want to use the image as a button you can use ImageButton and mater setImageResource or use an equivalent.

    
23.01.2015 / 16:39