如何为列表的每一行创建新意图?

时间:2011-11-27 23:38:52

标签: android android-layout listadapter

我必须制作一个列表,并为每一行调用不同的意图。有人能告诉我在代码中写些什么吗?现在吐司似乎只是表明我正在呼唤那条线。

public class Listview extends Activity {

    static ListView listView;


    static public class BackgroundWorker extends AsyncTask<Void, Person, Void> {

        @SuppressWarnings("unchecked")
        @Override
        protected void onPreExecute () {
            // Prima di iniziare a inserire gli elementi svuotiamo l'adapter
            ( ( ArrayAdapter<Person> ) listView.getAdapter() ).clear();
            super.onPreExecute();
        }

        @Override
        protected Void doInBackground ( Void... params ) {

            // Qui dentro si possono mettere le operazioni che potrebbero
            // rallentare il caricamento della listview, come ad sempio il
            // caricamento da db degli oggetti



            Person[] people = { new Person( "Privacy", "", R.drawable.creep_1 ) };
            Person[] people1 = {new Person( "Visualizzazione", "", R.drawable.creep_2 )};
            Person[] people2=  { new Person( "Notifiche", "", R.drawable.creep_3 )};




            // riempimento casuale della lista delle persone
            Random r = new Random();

            for ( int i = 0; i < 1; i++ ) {
                // Pubblichiamo il progresso
                publishProgress( people);
                publishProgress( people1);
                publishProgress( people2);

            }

            return null;
        }

        @SuppressWarnings("unchecked")
        @Override
        protected void onProgressUpdate ( Person... values ) {
            // Aggiungiamo il progresso pubblicato all'adapter
            ( ( ArrayAdapter<Person> ) listView.getAdapter() ).add( values[0] );
            super.onProgressUpdate( values );
        }

    }

    @Override
    public void onCreate ( Bundle savedInstanceState ) {
        super.onCreate( savedInstanceState );
        setContentView( R.layout.main );

        listView = ( ListView ) findViewById( R.id.personListView );

        listView.setAdapter( new PersonAdapter( this, R.layout.row_item, new ArrayList<Person>() ) );

        listView.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Person p = (Person) parent.getItemAtPosition(position);

            Toast.makeText(
                        view.getContext(),
                        "Click sulla riga " + p.getFullName(),
                        Toast.LENGTH_SHORT
                        ).show();
            }
        });

        new BackgroundWorker().execute();
    }

}

1 个答案:

答案 0 :(得分:0)

您可以使用switch语句,具体取决于ListView的position并调用您想要的活动。