2010-08-10 7 views
1

J'essaie de lancer une autre activité lorsqu'un élément de la liste est cliqué. Ci-dessous mon code:Comment cliquer sur un élément ListView dans Android

public class AvoidForeclosure extends CustomListTitle { 
/** Called when the activity is first created. */ 
private DbAdapter db; 
private SimpleCursorAdapter clients; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    ListView list = getListView(); 

    setContentView(R.layout.main); 

    this.title.setText("Avoid Foreclosure"); 

    db = new DbAdapter(this); 
    db.open(); 

    fillData(); 

    list.setOnItemClickListener(new OnItemClickListener() { 

     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

       int viewId = view.getId(); 

       TextView theView = (TextView) findViewById(viewId); 

       String name = theView.getText().toString(); 

       Cursor clientData = db.getClientByName(name); 

       Intent intent = new Intent(); 
       intent.setClass(view.getContext(), CurrentMarketValue.class); 
       intent.putExtra("clientId", clientData.getInt(0)); 
       startActivity(intent); 

     } 

    }); 

} 

private void fillData() { 
    // Get all of the notes from the database and create the item list 
    Cursor c = db.fetchAllClients(); 
    startManagingCursor(c); 

    String[] from = new String[] { DbAdapter.KEY_NAME }; 

    int[] to = new int[] { R.id.text1 }; 

    // Now create an array adapter and set it to display using our row 
    clients = new SimpleCursorAdapter(this, R.layout.clientsrow, c, from, to); 
    setListAdapter(clients); 


} 

}

Pourtant, quand je clique dessus, rien ne se passe. Des idées?

+0

Je ne suis pas sûr mais ne manque-t-il pas d'appeler Intent.setAction()? – RoflcoptrException

+0

À quoi ressemble le code CurrentMarketValue? – Key

+0

Je ne suis pas sûr de setAction(). Je ne l'utilise jamais sauf si j'appelle un fournisseur de données ... Quant à CurrentMarketValue - tout est valide, bien que presque inexistant. Le programme ne tente même pas de l'initier pour qu'il échoue. –

Répondre

1

Essayez de changer cette ligne:

ListView list = getListView(); 

être après celui-ci:

setContentView(R.layout.main); 

Sinon, vous allez recevoir une poignée au ListView de la mise en page par défaut du ListActivity, plutôt que R.layout. listview de main (qui est celui que vous voulez vraiment).

+0

Merci d'avoir répondu, mais ça n'a pas ne résoudra pas le problème. C'est comme si l'auditeur n'entendait même pas un clic. –

+0

Essayez de surcharger la méthode onListItemClicked() de ListActivity plutôt que de définir manuellement un nouvel onClickListener. –

Questions connexes