Как реализовать кнопку вызова контакта в setOnItemLongClickListener?

avatar
Ibnul Imtiaz
8 августа 2021 в 15:59
77
1
-1

Я хочу реализовать кнопку "Позвонить по номеру" в своем приложении. Как мне это сделать?

mListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
    @Override
    public boolean onItemLongClick(AdapterView<?> adapterView, View view, int position, long l) {

        //Alert dialog to display options of update and delete

        final CharSequence [] items = {"Update","Delete","Call"};
        AlertDialog.Builder dialog = new AlertDialog.Builder(RecordListActivity.this);

        dialog.setTitle("Choose an Action");

        dialog.setItems(items, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                if(i == 0){
                    //update
                    Cursor c = MainActivity.mSQLiteHelper.getData("SELECT id FROM RECORD");
                    ArrayList<Integer> arrID = new ArrayList<Integer>();
                    while(c.moveToNext() ){
                        arrID.add(c.getInt(0));
                    }
                    //Show update Dialog
                    showDialogUpdate(RecordListActivity.this,arrID.get(position));
                }
                if(i==1){
                        //delete
                    Cursor c = MainActivity.mSQLiteHelper.getData("SELECT id FROM RECORD");
                    ArrayList<Integer> arrID = new ArrayList<Integer>();

                    while(c.moveToNext()){
                        arrID.add(c.getInt(0));
                    }
                    showDialogDelete(arrID.get(position));
                }
                 if(i==3){
               //Call Method, I don't know how to do that, cause I already use a Model, I don't know how to do that.



          }

            }
        });
        dialog.show();
        return true;
    }
});

Я новичок в Android, как сделать контактный вызов в setOnItemLongClickListener(). Сверху я добавил свой метод setOnItemLongClickListener, чтобы реализовать его.

Источник

Ответы (1)

avatar
Leonid
8 августа 2021 в 16:20
1

Если я правильно понял, то вы хотите узнать, как позвонить по номеру?

Этот код для вашего проекта откроет приложение для звонков с номером телефона:

TextView tvPhone = view.findViewById(R.id.textphone);
String phone = tvPhone.getText().toString();
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:" + phone));
view.getContext().startActivity(intent);

Официальная документация

Ibnul Imtiaz
8 августа 2021 в 17:01
0

Братан, я тоже прошел этот тест. но это не то, что я хотел искать. Когда я вставляю свое имя и номер в базу данных SQLite, он отображается в списке, и я хочу позвонить из этого списка. Я прикрепил ссылку на свой проект GitHub, которая называется «SaveContactBySQLite». Вы можете проверить это?

Leonid
8 августа 2021 в 17:04
0

@imtiazeemel Можете ли вы объяснить, что именно вы хотите сделать?

Ibnul Imtiaz
8 августа 2021 в 17:44
0

Хотел, чтобы кнопка вызова работала для моей вставленной базы данных, где (имя, номер телефона). когда я нажимаю эту кнопку, он вызывает (телефонный звонок) вставленный номер. Надеюсь, я смогу объяснить это правильно. если вы проверите мой проект GitHub, я надеюсь, вы правильно поймете мой ответ.

Leonid
8 августа 2021 в 17:47
0

@imtiazeemel Я смотрел GitHub. Пожалуйста, попробуйте вставить мой отредактированный код из моего ответа. Я получаю телефон из представления и использую baseContext для startActivity

Ibnul Imtiaz
8 августа 2021 в 18:15
0

Ты видишь мой ответ? где я не прав? Можешь сказать мне? И ошибка: не удается найти символ String phone = view.findViewById<TextView>(R.id.textphone).getText();

Ibnul Imtiaz
8 августа 2021 в 18:30
0

Я добавляю это, но кнопка вызова не работает, String phone = view.findViewById(R.id.textphone).toString(); Намерение намерение = новое намерение (Intent.ACTION_DIAL); намерение.setData(Uri.parse("тел:" + телефон)); getBaseContext().startActivity(намерение);

Leonid
8 августа 2021 в 18:34
0

@imtiazeemel Извините, я ошибся. Попробуйте новый код из моего ответа

Leonid
8 августа 2021 в 18:48
0

@imtiazeemel Я снова редактирую ответ. Теперь это работает, я проверил с вашим проектом

Ibnul Imtiaz
8 августа 2021 в 18:50
0

Давайте продолжим обсуждение в чате.