Одна кнопка полагается на другую, которую нужно нажимать - PullRequest
0 голосов
/ 05 мая 2018

У меня есть две кнопки в моем приложении для Android, и одна должна ввести номер в приложение для набора номера на телефоне. Другой предназначен для вас на сайт. Тем не менее, вы можете использовать кнопку веб-сайта только при нажатии кнопки вызова. Я хочу, чтобы мои пользователи могли выбирать каждую кнопку независимо, не нужно ждать несколько секунд, прежде чем они смогут посетить веб-страницу. Я включаю свой код ниже.

Я перепробовал все, что мог, включая удаление проблемной кнопки из действия, но я хочу, чтобы у моих пользователей был выбор веб-страницы или телефона.

public class fthactivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_fthactivity);
        findViewById(R.id.fthcall).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                dialContactPhone("112345678910");
            }
        });
    }

    private void dialContactPhone(final String phoneNumber) {
        startActivity(new Intent(Intent.ACTION_DIAL, Uri.fromParts("tel", phoneNumber, null)));

        Button btn = (Button) findViewById(R.id.fthweb);
        btn.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                Intent myWebLink = new Intent(android.content.Intent.ACTION_VIEW);
                myWebLink.setData(Uri.parse("http://google.ca/"));
                startActivity(myWebLink);

            }

        });
    }
}

Это моя активность. Если кому-то нужно больше кода, я был бы рад предоставить. Спасибо.

1 Ответ

0 голосов
/ 05 мая 2018

Ну, проблема в том, что вы вызываете метод для второй кнопки внутри первой. Попробуйте это:

public class fthactivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_fthactivity);
        findViewById(R.id.fthcall).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                dialContactPhone("112345678910");
            }
        });

        Button btn = (Button) findViewById(R.id.fthweb);
        btn.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                Intent myWebLink = new Intent(android.content.Intent.ACTION_VIEW);
                myWebLink.setData(Uri.parse("http://google.ca/"));
                startActivity(myWebLink);

            }

        });
    }

    private void dialContactPhone(final String phoneNumber) {
        startActivity(new Intent(Intent.ACTION_DIAL, Uri.fromParts("tel", phoneNumber, null)));
    }
}

Также при использовании Неявные намерения разрешают действие, чтобы увидеть, есть ли действие, которое может ответить на это намерение, в противном случае оно прервется:

Intent myWebLink = new Intent(android.content.Intent.ACTION_VIEW);
myWebLink.setData(Uri.parse("http://google.ca/"));

if (myWebLink.resolveActivity(getPackageManager()) != null) {
     startActivity(myWebLink);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...