Autore Topic: passaggio di array tra activity!!  (Letto 687 volte)

Offline alex93

  • Utente junior
  • **
  • Post: 56
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung galaxy s2
  • Sistema operativo:
    Windows 8
passaggio di array tra activity!!
« il: 28 Aprile 2013, 13:41:29 CEST »
0
ciao a tutti, io ho una listview che contiente i seguenti item: matricola, Nome,Cognome, checkbox per segnare l'assenza!!! come potrei passare gli id degli studenti segnati assenti???(io so come passare un solo valore selezionato nell'intent). I controlli per verificare se la checkbox dell'assenza è spuntata, lho fatto! Il problema  è passare gli id degli studenti che sono checkati... posto anche il codice!!
Codice (Java): [Seleziona]
CustomAdpater

package com.example.tesi;

import java.util.List;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.TextView;
import android.widget.Toast;

public class CustomAdapter1 extends ArrayAdapter<Stud>{

    public CustomAdapter1(Context context, int textViewResourceId,
                List<Stud> objects) {
        super(context, textViewResourceId, objects);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
         ViewHolder viewHolder = null;
         if (convertView == null) {
             LayoutInflater inflater = (LayoutInflater) getContext()
                       .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
             convertView = inflater.inflate(R.layout.riga1, null);
             viewHolder = new ViewHolder();
             viewHolder.mat = (TextView)convertView.findViewById(R.id.mat);
             viewHolder.nome = (TextView)convertView.findViewById(R.id.nome);
             viewHolder.cb =(CheckBox)convertView.findViewById(R.id.prova);
             convertView.setTag(viewHolder);
             viewHolder.cb.setOnClickListener( new View.OnClickListener()
             {
                        public void onClick(View v)  
                        {
                          CheckBox cb = (CheckBox) v;
                          Stud s = (Stud) cb.getTag();
                          s.setCheck(cb.isChecked());
                       }
             });
         } else {
             viewHolder = (ViewHolder) convertView.getTag();
         }
         Stud stud = getItem(position);
         viewHolder.mat.setText(stud.getMat());
         viewHolder.nome.setText(stud.getNome()+" "+stud.getCognome());
         viewHolder.cb.setChecked(stud.getCheck());
         viewHolder.cb.setTag(stud);
         return convertView;
     }

     private class ViewHolder {
         public TextView mat;
         public TextView nome;
         public CheckBox cb;
     }

       
 }
classe studente dove è presente la listview
Codice (Java): [Seleziona]
package com.example.tesi;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;

public class Studente extends Activity {
        final Context context = this;
        CustomAdapter1 adapter;
        ArrayList<Stud> list1 = new ArrayList<Stud>();
        private static final String url = "jdbc:mysql://10.0.2.2:3306/tesina";
    private static final String user = "root";
    private static final String pass = "";
   
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.listas);
        Bundle extras=getIntent().getExtras();

        String ids=extras.getString("id");
        ListView listView = (ListView)findViewById(R.id.lista1);
        //List<Stud> list = new LinkedList<Stud>();
       
try {
                       
            Class.forName("com.mysql.jdbc.Driver");
            Connection con = DriverManager.getConnection(url, user, pass);
            String result = "Database connection success\n";
            Statement st = con.createStatement();
            ResultSet rs = st.executeQuery("select * from studenti where idc='"+ids+"'");
           
           
            while(rs.next()) {
               
               
                 list1.add(new Stud(rs.getString(1),rs.getString(3),rs.getString(4),false));
                 
            }
             adapter = new CustomAdapter1(this, R.layout.riga1, list1);
            listView.setAdapter(adapter);
           
            OnItemClickListener clickListener = new OnItemClickListener() {

                @Override
                public void onItemClick(AdapterView<?> adapter, View view,
                    int position, long id) {
                       
                         Stud c = (Stud) adapter.getItemAtPosition(position);
                     Toast.makeText(getApplicationContext(),"Clicked on Row: " + c.getNome(),
                     Toast.LENGTH_LONG).show();
                     
                     }  
               
               
            };
            listView.setOnItemClickListener(clickListener);
         
        }
        catch(Exception e) {
            e.printStackTrace();
           
        }  
Button Invia=(Button) findViewById(R.id.btnInvia);
Invia.setOnClickListener(new View.OnClickListener() {
         
    public void onClick(View arg0) {
        // TODO Auto-generated method stub
     
         //StringBuffer responseText = new StringBuffer();
         //responseText.append("Gli assenti sono:\n");
         Intent prel = new Intent(getApplicationContext(), Preleva.class);
         prel.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
         for(int i=0;i<list1.size();i++)
         {
              Stud s = list1.get(i);
             if(s.getCheck())
             {
                 //responseText.append("\n" +"Matricola numero:"+ s.getMat());
                 String idm=s.getMat().toString();
                 prel.putExtra("id",idm);
                 
             }
         }
         //Toast.makeText(getApplicationContext(),
         //responseText, Toast.LENGTH_LONG).show();
         startActivity(prel);
         finish();
    }
});
Button indietro=(Button) findViewById(R.id.btnIndietro);
indietro.setOnClickListener(new View.OnClickListener() {
         
        public void onClick(View arg0) {
                 
                AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);

                // set title
                alertDialogBuilder.setTitle("Attenzione!!");

                // set dialog message
                alertDialogBuilder
                        .setMessage("Desideri uscire senza salvare gli assenti nel database?")
                        .setCancelable(false)
                        .setPositiveButton("si",new DialogInterface.OnClickListener() {
                                public void onClick(DialogInterface dialog,int id) {
                                       
                                          Intent ind = new Intent(getApplicationContext(), lista.class);
                                ind.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                                startActivity(ind);
                                finish();
                                }
                          })
                        .setNegativeButton("No",new DialogInterface.OnClickListener() {
                                public void onClick(DialogInterface dialog,int id) {
                                       
                                        dialog.cancel();
                                }
                        });

                        // create alert dialog
                        AlertDialog alertDialog = alertDialogBuilder.create();

                        // show it
                        alertDialog.show();
                }
        });

       
    }

}classe stud
Codice (Java): [Seleziona]
package com.example.tesi;

public class Stud {

        private String matricola;
        private String nome;
    private String cognome;
    private boolean check = false;
   

    public Stud(String matricola,String nome, String cognome,boolean check) {
        this.matricola=matricola;
        this.nome = nome;
        this.cognome = cognome;
        this.check = check;
       
    }

    public String getMat() {
        return matricola;
    }

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:passaggio di array tra activity!!
« Risposta #1 il: 28 Aprile 2013, 14:55:11 CEST »
0
Qual'é il problema? Hai provato putExtra(String, String[])?
Qua ci sono tutti i putExtra che vuoi.
Postate il LogCat LogCat LogCat LogCat LogCat