How to click the ListView item and call another screen?

1

I created a listView where it shows my registered item, how do I to click the item I want it to open a new screen with the description and details of the item?

Class where my table is displayed:

public class MostraTodosOsLivrosActivity extends Activity {
  private ListView lvMostraTodosOsLivros;

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

    Button btCadastro = (Button) findViewById(R.id.btAbreCadastro);
    lvMostraTodosOsLivros = (ListView) findViewById(R.id.lvMostraTodosOsLivros);

    btCadastro.setOnClickListener(new OnClickListener() {           
        @Override
        public void onClick(View v) {               
            Intent it = new Intent(MostraTodosOsLivrosActivity.this, CadastroLivroActivity.class);
            startActivity(it);              
        }
    });

}

@Override
protected void onResume() {
    super.onResume();

    DbHelper dbHelper = new DbHelper(this);
    List<Livro> listaLivros = dbHelper.selectTodosOsLivros();

    ArrayAdapter<Livro> adp = new ArrayAdapter<Livro>(this, android.R.layout.simple_list_item_1, listaLivros);

    lvMostraTodosOsLivros.setAdapter(adp);

}
    
asked by anonymous 08.05.2015 / 16:44

1 answer

5

You should set the event setOnItemClickListener of ListView :

lvMostraTodosOsLivros.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        // se for a partir de um fragment
        Intent intent = new Intent(getActivity(), /* activity a ser chamada */ DetailsActivity.class);
        // se for a partir de uma activity
        Intent intent = new Intent(getApplicationContext(), /* activity a ser chamada */ DetailsActivity.class);
        // set no intent o id ou a position do item selecionado
        intent.putExtra("ID", id);
        intent.putExtra("POSITION", position);
        startActivity(intent);
    }
});

And in Activity details in method onCreate receives identifier values of which item was clicked:

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

    long idSelected = getIntent().getLongExtra("ID", 0);
    long positionSelected = getIntent().getIntExtra("POSITION", 0);

    // Então aqui você utiliza o ID do item(caso tenha) para pesquisar no banco de dados ou a position para pesquisar na list de origem
    // E então setar a View com os detalhes do item.
}
    
08.05.2015 / 16:53