Обработка нажатия на элемент списка ListView
В программе поставлен компонент ListView. В ListView Item заполняется через adapter из strings.xml. Каждый Item содержит несколько слов и одна из них номер телефона. В заполнении Item нет проблем. Нужна делать так когда нажимают (onclick) на отдельную Item нужна набрать номер (позвонить) который указан внутри Item. Как это можно осуществить. Спасибо.
Ответы (1 шт):
Можно добавить слушатель нажатий:
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