"If a worker wants to do his job well, he must first sharpen his tools." - Confucius, "The Analects of Confucius. Lu Linggong"
Front page > Programming > How to Keep a Selected Item Highlighted in an Android ListView?

How to Keep a Selected Item Highlighted in an Android ListView?

Posted on 2025-02-26
Browse:814

How to Keep a Selected Item Highlighted in an Android ListView?

Android ListView keeps selected item highlighted

In this thread, you will see how to keep the selected item in a ListView highlighted, even when the details of the selected item are displayed in another ListView.

First, let's define the XML layout:



Now, let's look at the Java code:

Cursor cursor = db.rawQuery("Select NrCl||';'||Nome From Clientes", null);
final ListView t = (ListView)findViewById(R.id.cli_lista);
ArrayAdapter myarrayAdapter = new ArrayAdapter(this, android.R.layout.simple_expandable_list_item_1, listItems);
t.setAdapter(myarrayAdapter);

final ListView td = (ListView)findViewById(R.id.cli_lista_detalhe);
final ArrayAdapter myarrayAdapter2 = new ArrayAdapter(this, android.R.layout.simple_expandable_list_item_1, listItems2);

t.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView> parent, View view, int position, long id) {
        String item = ((TextView)view).getText().toString();
        String[] strArray = item.split("\\;");

        cli.load(strArray[0].toString());
        td.setAdapter(myarrayAdapter2);
        listItems2.clear();
        listItems2.add("Nome: "   cli.getNome());
        listItems2.add("Morada: "   cli.getMorada());
        listItems2.add("Localidade: "   cli.getLoca());
        listItems2.add("Código Postal: "   cli.getCp());
        listItems2.add("Pais: "   cli.getPais());
        listItems2.add("Nif: "   cli.getNif());
        listItems2.add("Tel: "   cli.getTel());
        listItems2.add("Tlm: "   cli.getTlm());
        listItems2.add("Tipo Preço: "   cli.getTipoPvn());
        listItems2.add("Cond. Pagamento: "   cli.getCpg());
        listItems2.add("Obs: "   cli.getObs());
        td.setAdapter(myarrayAdapter2);
        myarrayAdapter2.notifyDataSetChanged();
    }
});

In the XML layout, we specify:

  • android:choiceMode="singleChoice": This ensures that only one item can be selected at a time.
  • android:listSelector="#666666": This specifies a background color for the selected item.

In the Java code, we handle the item click event and update the details ListView accordingly.

By following this approach, you can keep the selected item in the first ListView highlighted while displaying the details of the selected item in the second ListView.

Latest tutorial More>

Disclaimer: All resources provided are partly from the Internet. If there is any infringement of your copyright or other rights and interests, please explain the detailed reasons and provide proof of copyright or rights and interests and then send it to the email: [email protected] We will handle it for you as soon as possible.

Copyright© 2022 湘ICP备2022001581号-3