Обработка нажатия на элемент списка ListView

В программе поставлен компонент ListView. В ListView Item заполняется через adapter из strings.xml. Каждый Item содержит несколько слов и одна из них номер телефона. В заполнении Item нет проблем. Нужна делать так когда нажимают (onclick) на отдельную Item нужна набрать номер (позвонить) который указан внутри Item. Как это можно осуществить. Спасибо.


Ответы (1 шт):

Автор решения: Andrew

Можно добавить слушатель нажатий:

lv.setClickable(true);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {

  @Override
  public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {

    // String itemString=lv.getSelectedItem().toString();

  }
});

и дальше открыть звонилку можно так:

Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:0123456789"));
startActivity(intent); 

здесь вы можете установить ваш номер который нужно набирать:

"tel:0123456789"

с учетом того что заполнение происходит через массив строк, то вам нужно как-то из строки вытаскивать номер. Либо простой обрезкой, если размер номера одинаковый:

itemString.substring(15, 20);

либо так:

itemString = itemString.replaceAll("\\D+","");

последний способ убирает все буквы и оставляет только номер, и дальше после клика:

Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:"+itemString.replaceAll("\\D+","")));
startActivity(intent); 

P.S. Метка android-studio используется для вопросов связанных с самой IDE

→ Ссылка