Autore Topic: Prendere il valore di un risultato nella listview al click del bottone  (Letto 316 volte)

Offline EdoardoGoffredoDeveloper

  • Nuovo arrivato
  • *
  • Post: 44
  • Respect: 0
    • Mostra profilo
Salve a tutti..
Premetto che sono nuovo nel mondo dello sviluppo di app android...

In breve sto creando un applicazione che inserisce in una listview customizzata dei valori..

Questa list view è formata da delle text view e da un bottone..

Vorrei che al click del bottone presente nella list view, prenda il valore delle textview a quella determinata posizione e lo mostri tramite Toast..


La listview è composta cosi "list_item.xml":

Codice (Java): [Seleziona]
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TableRow android:layout_width="fill_parent"
        android:id="@+id/TableRow_list_item"
        android:layout_height="wrap_content"
        android:gravity="center">

        <ImageView
            android:layout_width="0dp"
            android:layout_height="80dp"
            android:id="@+id/imageView_logo_utente"
            android:src="@drawable/icon_user_green"
            android:layout_column="1"
            android:layout_weight="1"/>

        <TextView
            android:textColor="#000000"
            android:id="@+id/nomec"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:text="Nome Completo"
            android:layout_weight="2"
            android:gravity="center"
            android:height="40dp"
            android:textSize="17dp"
            android:layout_column="1"/>

        <TextView
            android:textColor="#000000"
            android:id="@+id/tiposogget"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:text="Tipo Soggetto Etichetta"
            android:layout_weight="2"
            android:gravity="center"
            android:height="40dp"
            android:textSize="17dp"
            android:layout_column="1"/>

        <TextView
            android:textColor="#000000"
            android:id="@+id/cf"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:text="Codice Fiscale"
            android:gravity="center"
            android:height="40dp"
            android:textSize="17dp"
            android:layout_column="1"
            android:layout_weight="2" />


        <TextView
            android:textColor="#000000"
            android:id="@+id/idsogg"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:text="ID Soggetto"
            android:layout_weight="1"
            android:gravity="center"
            android:height="40dp"
            android:textSize="17dp"
            android:layout_column="1"/>

        <Button
            android:layout_width="0dp"
            android:layout_height="90dp"
            android:id="@+id/button_scan"
            android:layout_column="1"
            android:layout_weight="0.63"
            android:height="140dp"
            android:background="@drawable/custom_button_scanner"
            android:onClick="myClickHandler"
            android:focusable="false"/>


    </TableRow>

</TableLayout>


Il bottone in questione ha il codice:

Codice (Java): [Seleziona]
 android:onClick="myClickHandler"


La mia activity che estende AppCompatActivity è composta cosi:


Codice (Java): [Seleziona]
public class ActivityListview extends AppCompatActivity {

//************VARIABILI GLOBALI*************

ListView lv;

static final String KEY_CF = "CodiceFiscale";
static final String KEY_ID = "IDSoggetto";
static final String KEY_NOMEC = "NomeCompleto";
static final String KEY_TIPOSOGGET = "TipoSoggettoEtichetta";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.listview_scanner);


    lv = (ListView) findViewById(R.id.listView_resultXML);


   Example();

}



public void Example() {
    ArrayList<HashMap<String, String>> menuItems = new ArrayList<HashMap<String, String>>();

    // Adding menuItems to ListView
    ListAdapter adapter = new SimpleAdapter(this, menuItems,
            R.layout.list_item,
            new String[]{KEY_CF, KEY_ID, KEY_NOMEC, KEY_TIPOSOGGET}, new int[]{
            R.id.cf, R.id.idsogg, R.id.nomec, R.id.tiposogget});
    // selecting single ListView item
    ViewGroup headerview = (ViewGroup) getLayoutInflater().inflate(R.layout.header_listview, lv, false);
    lv.setAdapter(null);
    lv.addHeaderView(headerview);
    lv.setAdapter(adapter);





public void myClickHandler(View v)
{
    // QUI VOGLIO PRENDERE IL VALORE A QUELLA POSIZIONE COME IL METODO onItemClicklListener


    Toast.makeText(ActivityListviewScanner.this, "value is:", Toast.LENGTH_LONG).show();

}


    // listening to single listitem click
    lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        //Metodo per prelevare dati al click sulla casella della ListView
        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                                int position, long id) {
            // getting values from selected ListItem
            String string_example = ((TextView) view.findViewById(R.id.cf)).getText().toString();

        }
    });
}



E' possibile prendere il valore come il metodo "onItemClick" e visualizzarlo nel toast?


Chiedo scusa se sono stato contorto =)


Offline Alessio_roma™

  • Utente junior
  • **
  • Post: 50
  • Respect: 0
    • Mostra profilo
    • www.blogarm.tk
  • Dispositivo Android:
    LG Nexus 4
  • Sistema operativo:
    Windows 7 ultimate x64, Ubuntu 14.04
Re:Prendere il valore di un risultato nella listview al click del bottone
« Risposta #1 il: 18 Maggio 2016, 08:47:14 CEST »
0
Scusa ma perché ti serve un bottone? Basta che setti un OnItemclicklister sulla listView e ti prendi il valore dall'adapter utilizzando la posizione che ti viene passata nel listener.

Inviato dal mio Xperia Z3+ utilizzando Tapatalk

I MIEI SITI:
RPG & Fantasy -> La Fucina di Harad
Pagina personale -> Il Web di Alessio_roma™