编辑ListView Android

时间:2013-07-04 16:38:19

标签: android listview

我只想问,是否可以在我自己的程序中编辑列表视图。

基本上我有5个按钮,每当我按下其中一个按钮时会启动另一个激活,它会查询数据库并在列表视图中显示结果。

我正在使用simple_list_item_1并且它可以工作,但输出如下:

1 NOME: Mario COGNOME: Rossi Nascita: 09/09/1991 Indirizzo Via Giustiniani2 Telefono:xxxxxxxxxx

现在,是否可以编辑输出的字体或颜色? 这是按钮的活动:

public class Selezionato extends Activity{
    Button Anagrafica,Farmacologia,Ricoveri,InserisciFarmaco,Refertazione;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.selezionato);
        Bundle extras = getIntent().getExtras();

        //Prendo l'id del paziente
        final String value = extras.getString("dati");
        //final int id = Integer.parseInt(value);

        //Definisco i pulsanti
        Anagrafica = (Button)findViewById(R.id.Anagrafica);
        Farmacologia = (Button)findViewById(R.id.Farmacologia);
        Ricoveri = (Button)findViewById(R.id.Ricoveri);
        InserisciFarmaco = (Button)findViewById(R.id.InserisciFarmaco);     
        Refertazione=(Button)findViewById(R.id.Refertazione);

        //final DB db=new DB(getApplicationContext());

        Anagrafica.setOnClickListener(new OnClickListener(){
            @Override
            public void onClick(View v){
                Intent i = new Intent(getBaseContext(), Visualizza.class);
                i.putExtra("dati","anagrafica" );//stringa, valore   
                i.putExtra("id", value );//stringa, id paziente selezionato
                startActivity(i);               
            }//fine OnClick

        });//fine pressione bottone Anagrafica

        Farmacologia.setOnClickListener(new OnClickListener(){
            @Override
            public void onClick(View v){
                Intent i = new Intent(getBaseContext(), Visualizza.class);
                i.putExtra("dati","farmacologia" );//stringa, valore   
                i.putExtra("id", value );//stringa, id paziente selezionato
                startActivity(i);               
            }//fine OnClick

        });//fine pressione bottone Farmacologia

        Ricoveri.setOnClickListener(new OnClickListener(){
            @Override
            public void onClick(View v){
                Intent i = new Intent(getBaseContext(), Visualizza.class);
                i.putExtra("dati","ricoveri" );//stringa, valore   
                i.putExtra("id", value );//stringa, id paziente selezionato
                startActivity(i);

            }//fine OnClick

        });//fine pressione bottone Ricoveri

        InserisciFarmaco.setOnClickListener(new OnClickListener(){
            @Override
            public void onClick(View v){
                Intent i = new Intent(getBaseContext(), InserireFarmaco.class);  
                i.putExtra("id", value );//stringa, id paziente selezionato
                startActivity(i);

            }//fine OnClick

        });//fine pressione bottone InserisciFarmaco

        Refertazione.setOnClickListener(new OnClickListener(){
            @Override
            public void onClick(View v){
                Intent i = new Intent(getBaseContext(), Visualizza.class); 
                i.putExtra("dati","refertazione" );//stringa, valore 
                i.putExtra("id", value );//stringa, id paziente selezionato
                startActivity(i);

            }//fine OnClick

        });
    }
}

这是显示输出的活动:

public class Visualizza extends Activity{
    ListView l1;

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

        l1 = (ListView)findViewById(R.id.listd);//Risultato
        // mi prendo l'id del pulsante premuto
        Bundle extras = getIntent().getExtras();        
        final String  a = extras.getString("dati"); 

        final DB db=new DB(getApplicationContext());
        final ArrayList<String> ris = new ArrayList<String>();
        final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(Visualizza.this,android.R.layout.simple_list_item_1 , ris);

        if(a.compareTo("user")==0){//admin
            db.open();
            Cursor d = db.fetch(); // query 
            int ColonnaIDU=d.getColumnIndex(DB.User.IDU);
            int ColonnaUserU=d.getColumnIndex(DB.User.NOMEU);
            int ColonnaPassU=d.getColumnIndex(DB.User.PASSWORDU);
            l1.setAdapter(arrayAdapter);
            if (d.getCount()!=0){   //se trovo l'utente        
                if(d.moveToFirst()){  //mi metto sul primo record
                    do{
                        ris.add(d.getString(ColonnaIDU)+ " NOME: "+d.getString(ColonnaUserU)
                                                       + " PSW: "+d.getString(ColonnaPassU) 
                                                       + "\n");
                        arrayAdapter.notifyDataSetChanged();

                      }while (d.moveToNext());//finanto che ci sono record

                }//fine 2° if
            d.close();
            db.close();
            }//fine 1° if                               
            else{
                Toast.makeText(Visualizza.this,"Tabella User vuota", Toast.LENGTH_SHORT).show();
                d.close();
                db.close();
            }//fine else
        }
        else if (a.compareTo("VisualizzaPazienti")==0){
            db.open();
            Cursor c = db.fetch8(); // query                
            int ColonnaNome=c.getColumnIndex(DB.Paziente.NOMEP);
            int ColonnaCognome=c.getColumnIndex(DB.Paziente.COGNOMEP);
            int ColonnaID=c.getColumnIndex(DB.Paziente.IDP);
            int ColonnaNascita=c.getColumnIndex(DB.Paziente.NASCITAP);
            int ColonnaIndirizzo=c.getColumnIndex(DB.Paziente.INDIRIZZOP);
            int ColonnaTelefono=c.getColumnIndex(DB.Paziente.TELEFONOP);
            int ColonnaIdUser=c.getColumnIndex(DB.User.NOMEU);
            l1.setAdapter(arrayAdapter);
            if(c.getCount()!=0){    //se trovo qualcosa
            if(c.moveToFirst()){  //mi metto sul primo record
                do{                     
                    ris.add(c.getString(ColonnaID)+ " NOME: "+c.getString(ColonnaNome)
                                                  + " COGNOME: "+c.getString(ColonnaCognome) 
                                                  + " Nascita: "+c.getString(ColonnaNascita) 
                                                  + " Indirizzo: "+c.getString(ColonnaIndirizzo) 
                                                  + " Telefono: "+c.getString(ColonnaTelefono) 
                                                  + " User: "+c.getString(ColonnaIdUser) 
                                                  + "\n");
                    arrayAdapter.notifyDataSetChanged();
                }while (c.moveToNext());//e aggiungo i risultati nella lista
               }

                c.close();
                db.close();
           }
        else {//se non trovo nessun paziente
            ris.add("Tabella pazienti vuota!");
            arrayAdapter.notifyDataSetChanged();

        }//fine else           
        c.close();
        db.close();  
        }//fine else if
        else if (a.compareTo("anagrafica")==0){
            final String  idstringa = extras.getString("id");
            final int id = Integer.parseInt(idstringa);
            db.open();
            Cursor c = db.fetch7(id); // query              
            int ColonnaNome=c.getColumnIndex(DB.Paziente.NOMEP);
            int ColonnaCognome=c.getColumnIndex(DB.Paziente.COGNOMEP);
            int ColonnaID=c.getColumnIndex(DB.Paziente.IDP);
            int ColonnaNascita=c.getColumnIndex(DB.Paziente.NASCITAP);
            int ColonnaIndirizzo=c.getColumnIndex(DB.Paziente.INDIRIZZOP);
            int ColonnaTelefono=c.getColumnIndex(DB.Paziente.TELEFONOP);
            l1.setAdapter(arrayAdapter);
            if(c.getCount()!=0){    //se trovo qualcosa
            if(c.moveToFirst()){  //mi metto sul primo record
                do{                     
                    ris.add(c.getString(ColonnaID)+ " NOME: "+c.getString(ColonnaNome)
                                                  + " COGNOME: "+c.getString(ColonnaCognome) 
                                                  + " Nascita: "+c.getString(ColonnaNascita) 
                                                  + " Indirizzo: "+c.getString(ColonnaIndirizzo) 
                                                  + " Telefono: "+c.getString(ColonnaTelefono) 
                                                  + "\n");
                    arrayAdapter.notifyDataSetChanged();

                }while (c.moveToNext());//e aggiungo i risultati nella lista
               }

                c.close();
                db.close();
           }
        else {//se non trovo nessun paziente
            ris.add("Nessun paziente trovato!");
            arrayAdapter.notifyDataSetChanged();

        }//fine else           
        c.close();
        db.close();  
        }//fine else if

        else if (a.compareTo("farmacologia")==0){
            final String  idstringa = extras.getString("id");
            final int id = Integer.parseInt(idstringa);
            db.open();
            Cursor c = db.fetch4(id);   
            int ColonnaId=c.getColumnIndex(DB.Farmaci.IDF);
            int ColonnaNome=c.getColumnIndex(DB.Farmaci.NOMEF);
            int ColonnaData=c.getColumnIndex(DB.Farmaci.DATAF);
            int ColonnaNote=c.getColumnIndex(DB.Farmaci.NOTEF);

            l1.setAdapter(arrayAdapter);
            if(c.getCount()!=0){    //se trovo qualcosa
            if(c.moveToFirst()){  //mi metto sul primo record
                do{                     
                    ris.add(c.getString(ColonnaId)+ " Data: "+c.getString(ColonnaData)
                                                  + "\n"
                                                  + " Nome: "+c.getString(ColonnaNome) 
                                                  + "\n"
                                                  + " Note: "+c.getString(ColonnaNote)
                                                  + "\n");
                    arrayAdapter.notifyDataSetChanged();
                }while (c.moveToNext());//e aggiungo i risultati nella lista
               }

                c.close();
                db.close();
           }
        else {//se non trovo nessun farmaco
            ris.add("Nessun farmaco!");
            arrayAdapter.notifyDataSetChanged();

        }//fine else           
        c.close();
        db.close();  
        }//fine else if

        else if (a.compareTo("ricoveri")==0){           
            final String  idstringa = extras.getString("id");
            final int id = Integer.parseInt(idstringa);
            db.open();
            Cursor c = db.fetch9(id);   
            int ColonnaId=c.getColumnIndex(DB.Ricoveri.IDR);
            int ColonnaData=c.getColumnIndex(DB.Ricoveri.DATAR);
            int ColonnaNote=c.getColumnIndex(DB.Ricoveri.NOTE);

            l1.setAdapter(arrayAdapter);
            if(c.getCount()!=0){    //se trovo qualcosa
            if(c.moveToFirst()){  //mi metto sul primo record
                do{                     
                    ris.add(c.getString(ColonnaId)+ " Data: "+c.getString(ColonnaData)
                                                  + " Note: "+c.getString(ColonnaNote) 
                                                  + "\n");
                    arrayAdapter.notifyDataSetChanged();
                }while (c.moveToNext());//e aggiungo i risultati nella lista
               }

                c.close();
                db.close();
           }
        else {//se non trovo nessun farmaco
            ris.add("Nessun ricovero!");
            arrayAdapter.notifyDataSetChanged();

        }//fine else           
        c.close();
        db.close();  
        }//fine else if

        else if (a.compareTo("refertazione")==0){
            final String  idstringa = extras.getString("id");
            final int id = Integer.parseInt(idstringa);
            db.open();
            Cursor c = db.fetch10(id);  
            int ColonnaId=c.getColumnIndex(DB.Refertazione.IDE);
            int ColonnaNote=c.getColumnIndex(DB.Refertazione.NOTEE);
            int ColonnaData=c.getColumnIndex(DB.Refertazione.DATAE);

            l1.setAdapter(arrayAdapter);
            if(c.getCount()!=0){    //se trovo qualcosa
            if(c.moveToFirst()){  //mi metto sul primo record
                do{                     
                    ris.add(c.getString(ColonnaId)+ " Data: "+c.getString(ColonnaData)
                                                  + "\n"
                                                  + " Note: "+c.getString(ColonnaNote)
                                                  + "\n");
                    arrayAdapter.notifyDataSetChanged();
                }while (c.moveToNext());//e aggiungo i risultati nella lista
               }

                c.close();
                db.close();
           }
        else {//se non trovo nessun farmaco
            ris.add("Nessun farmaco!");
            arrayAdapter.notifyDataSetChanged();

        }//fine else           
        c.close();
        db.close();  
        }//fine else if

    }//fine OnCreate    
}//fine classe

1 个答案:

答案 0 :(得分:1)

你当然可以!您应该使用BaseAdapter而不是ArrayAdapter!查看文档或谷歌获取教程......它很容易使用它们,它们非常强大!