Autore Topic: Gestire click su EditText contenute in una ListView  (Letto 1590 volte)

Offline Alet

  • Nuovo arrivato
  • *
  • Post: 19
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Acer Iconia Tab A501
  • Sistema operativo:
    Windows 7,Windows Xp
Gestire click su EditText contenute in una ListView
« il: 06 Settembre 2012, 11:56:39 CEST »
0
Ciao,
come da titolo non riesco a gestire il click sulle et dentro una lv
Mi spiego meglio io ho una listview composta da 1 textview e 5 edit text

Ho anche provato a seguire questo tutorial:
[medio] Utilizzo dei Button nelle ListView con layout personalizzato - Android Developers Italia

ma come risultato son riuscito ad ottenere il click sulla riga della ls ma non sulle edittext, mentre quello che a me "serve" è poter cliccare su una riga della ls e successivamente poter inserire dei valori sulle varie edittext(ovviamente di quella riga)

Sapete darmi uno spunto?  ;-)


Offline Alet

  • Nuovo arrivato
  • *
  • Post: 19
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Acer Iconia Tab A501
  • Sistema operativo:
    Windows 7,Windows Xp
Re:Gestire click su EditText contenute in una ListView
« Risposta #1 il: 06 Settembre 2012, 17:22:16 CEST »
0
Helllpp  o_O o_O o_O pls  o_O o_O o_O

Offline Melanogaster

  • Utente normale
  • ***
  • Post: 260
  • Respect: +11
    • Mostra profilo
  • Dispositivo Android:
    SII
  • Sistema operativo:
    Kubuntu
R: Gestire click su EditText contenute in una ListView
« Risposta #2 il: 06 Settembre 2012, 17:27:39 CEST »
+1
Devi crearti un tuo adapter ed implementare getView(...). All'interno potrai impostare sull'edittext il listener per l'onclick.
Su google cercando 'simpleadapter gerView' trovi sicuramente molto codice

Inviato dal mio GT-I9100 con Tapatalk 2

Offline Alet

  • Nuovo arrivato
  • *
  • Post: 19
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Acer Iconia Tab A501
  • Sistema operativo:
    Windows 7,Windows Xp
Re:Gestire click su EditText contenute in una ListView
« Risposta #3 il: 06 Settembre 2012, 17:31:36 CEST »
0
Grazie è gia' qualcosa inizio a cercare!

Offline Alet

  • Nuovo arrivato
  • *
  • Post: 19
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Acer Iconia Tab A501
  • Sistema operativo:
    Windows 7,Windows Xp
Re:Gestire click su EditText contenute in una ListView
« Risposta #4 il: 17 Settembre 2012, 12:55:20 CEST »
0
Dopo svariati tentativi mi ritrovo qui a chiedere ancora il vostro aiuto  ;-)

Praticamente son arrivato a cambiare oggetto e ad usare una GridView da cui riesco a gestire il click sugli oggetti contenuti da ogni singola riga.
Il problema principale però ( e questo penso sia un bug del os) sta sullo scrolling.
Per capirci io ho una singola riga della gridview composta da :

1 ImageButton
1 TextView
4 EditText
1 TextView
1 ImageButton

e praticamente se io inserisco un valore su una delle 4 edittext andando poi a scrollare mi ritrovo lo stesso valore copiato su un edittext appartenente ad un altra riga della gridview
Perchè si comporta cosi'?C'è qualche controllo che posso fare?

Per comodità vado a postarvi il codice dell'app

codice dell xml   Nome:mobile.xml :
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:padding="5dp" >

    <ImageButton
       android:id="@+id/b1"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:src="@drawable/ic_launcher" />
 
    <TextView
       android:id="@+id/tv1"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_marginTop="5px"
       android:text="NomeProdotto"
       android:textSize="15px" >

    </TextView>

    <EditText
       android:id="@+id/et1"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_weight="1" >

        <requestFocus />
    </EditText>

    <EditText
       android:id="@+id/et2"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_weight="1" />

    <EditText
       android:id="@+id/et3"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_weight="1" />

    <EditText
       android:id="@+id/et4"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_weight="1" />

    <TextView
       android:id="@+id/tv2"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="TextView" />

    <ImageButton
       android:id="@+id/b2"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:src="@drawable/ic_action_search" />
 
</LinearLayout>

Di seguito quello del'adapter  Nome:PersonalAdapter.java  :

Codice (Java): [Seleziona]
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.Toast;
 
public class PersonalAdapter extends BaseAdapter {
        private Context context;
        //private final String[] mobileValues;
        private int dimensione;
 
        public PersonalAdapter(Context context, int dimensione) {
                this.context = context;
                this.dimensione = dimensione;
        }
 
        public View getView(final int position, View convertView, ViewGroup parent) {
 
                LayoutInflater inflater = (LayoutInflater) context
                        .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
 
                View gridView;
 
                if (convertView == null) {
 
                        gridView = new View(context);
 
                        // get layout from mobile.xml
                        gridView = inflater.inflate(R.layout.mobile, null);
 
                        // set value into textview
                        TextView textView1 = (TextView) gridView
                                        .findViewById(R.id.tv1);
                       
                        textView1.setText("Textview1:"+String.valueOf(position));
                       
                       
                        ImageButton image1 = (ImageButton) gridView.findViewById(R.id.b1);
                       
                        EditText et1 = (EditText)gridView.findViewById(R.id.et1);                      
                        EditText et2 = (EditText)gridView.findViewById(R.id.et2);
                        EditText et3 = (EditText)gridView.findViewById(R.id.et3);
                        EditText et4 = (EditText)gridView.findViewById(R.id.et4);
                       
                        TextView textView2 = (TextView) gridView.findViewById(R.id.tv2);
                       
                        ImageButton image2 = (ImageButton) gridView.findViewById(R.id.b2);
                                               
                        image1.setOnClickListener(new OnClickListener() {
                    public void onClick(View view) {          
                        Toast.makeText(context, "botton1:"+position, Toast.LENGTH_SHORT).show();
                    }
                });    
                        image2.setOnClickListener(new OnClickListener() {
                    public void onClick(View view) {          
                        Toast.makeText(context, "botton2:"+position, Toast.LENGTH_SHORT).show();
                    }
                });
                        et1.setOnClickListener(new OnClickListener() {
                    public void onClick(View view) {          
                        Toast.makeText(context, "et1:"+position, Toast.LENGTH_SHORT).show();
                    }
                });
                       
 
                } else {
                        gridView = (View) convertView;
                }
 
                return gridView;
        }
 
        @Override
        public int getCount() {
               
                return dimensione;
        }
 
        @Override
        public Object getItem(int position) {
                return null;
        }
 
        @Override
        public long getItemId(int position) {
                return 0;
        }
 
}

E della classe principale Nome: GridViewActivity.java :

Codice (Java): [Seleziona]
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.TextView;
import android.widget.Toast;
 
public class GridViewActivity extends Activity {
 
        GridView gridView;
 
        @Override
        public void onCreate(Bundle savedInstanceState) {
 
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main);
 
                gridView = (GridView) findViewById(R.id.gridview);
 
                gridView.setAdapter(new PersonalAdapter(this,20));
 
        }
 
}


Offline Alet

  • Nuovo arrivato
  • *
  • Post: 19
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Acer Iconia Tab A501
  • Sistema operativo:
    Windows 7,Windows Xp
Re:Gestire click su EditText contenute in una ListView
« Risposta #5 il: 17 Settembre 2012, 17:29:19 CEST »
0
Nessuno è mai incappato in un problema del genere??  o_O o_O o_O o_O o_O o_O

Offline Alet

  • Nuovo arrivato
  • *
  • Post: 19
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Acer Iconia Tab A501
  • Sistema operativo:
    Windows 7,Windows Xp
Re:Gestire click su EditText contenute in una ListView
« Risposta #6 il: 18 Settembre 2012, 11:59:28 CEST »
0
Help!!!  ;-)

Offline Alet

  • Nuovo arrivato
  • *
  • Post: 19
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Acer Iconia Tab A501
  • Sistema operativo:
    Windows 7,Windows Xp
Re:Gestire click su EditText contenute in una ListView
« Risposta #7 il: 19 Settembre 2012, 17:00:32 CEST »
0
Ho capito che è un problema di ri uso della lista ..ma per evitarlo come si fa?