Skocz do zawartości
gutenberg95

Przycisk wybierania numeru po naciśnięciu - nie działa.

    Rekomendowane odpowiedzi

    Witam, uczę się aktualnie programowania aplikacji mobilnych, natknąłem się na problem podczas pisania funkcji przycisku , aby po naciśnięciu wybrał numer i zadzwonił pod zaprogramowany numer. Przeglądałem forum, testowałem wiele opcji, niestety po opaleniu aplikacji i wciśnięciu przycisku "zadzwoń" po prostu wyrzuca mnie z aplikacji, może ktoś z Was podpowie coś młodemu studentowi informatyki co z moim kodem jest nie tak, że to nie chce działać.

    To jest kod MainActivity.java
     

    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.content.Intent;
    import android.net.Uri;
    import android.os.Bundle;
    import android.view.View;
    
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        }
    
        public void onClickButton (View view){
            Intent intent = new Intent(Intent.ACTION_CALL);
            intent.setData(Uri.parse("tel:672122222"));
            startActivity(intent);
    
    
        }
    
    
    }

     

    activity_main.xml

    <?xml version="1.0" encoding="utf-8"?>
    <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">
    
        <Button
            android:id="@+id/button"
            android:layout_width="309dp"
            android:layout_height="85dp"
            android:layout_marginEnd="16dp"
            android:layout_marginRight="16dp"
            android:layout_marginBottom="400dp"
            android:text="@string/button"
            android:onClick="onClickButton"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent" />
    </androidx.constraintlayout.widget.ConstraintLayout>

     

    Dodam do tego, że w AndroidManifest.xml jest dodany zapis:  

    <uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
    

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    Napisano (edytowane)

    No niestety nie zadziała. 

    Tak na szybko to brakuje zmiennnej Button.

    private Button mButton;

    Potem:

    mButton = (Button) findViewById(R.id.button);

    a następnie trzeba ustawic kliknięcie:

    mButton.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View v) {
            //tu jest wykonywany kod po przycisnieciu buttona
          }
        });

    a to z xml-a usuń, nie miesza sie logiki z layoutem (tak mi kiedys tu ktos napisał ;) )

    android:onClick="onClickButton"

    EDIT: na prośbe z wiadomości prywatnej wstawiam cały kod:

    
    public class MainActivity extends AppCompatActivity {
    
    private Button mButton;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
    	mButton = (Button) findViewById(R.id.button);
    
    	mButton.setOnClickListener(new View.OnClickListener() {
          	@Override
          	public void onClick(View v) {
            //tu jest wykonywany kod po przycisnieciu buttona 
    
    	Intent intent = new Intent(Intent.ACTION_CALL);
            intent.setData(Uri.parse("tel:672122222"));
            startActivity(intent);
    	
          }
        });
    
        }
    
    }

    PS: pisane z głowy ale powinno działać

    Edytowane przez piotrsg

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Dzięki, już sobie poradziłem ;) teraz mi się nasuwa kolejne pytanie, może ktoś będzie wiedział czy technicznie jest to wykonalne i jaka funkcja za to odpowiada. Chodzi mi o przycisk, których po naciśnięciu wysuwa np na nim 2 przyciski z różnymi funkcjami. Mam np przycisk Zadzwoń po kliknięciu, który wysuwa od góry dwa kolejne przyciski , z funkcją 2 numerów zaprogramowanych pod każdym przyciskiem. Z góry dzięki za wskazówki.

    P.S Moje wstępne przemyślenia to jest jakby button z ukrytym widokiem w którym ukryte są kolejne 2 buttony. Dodam, że po naciśnięciu przycisku zadzwoń niema przekierowywać do podstrony, wszystko ma się odbyć w tej samej zakładce.

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

    Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

    Zarejestruj nowe konto

    Załóż nowe konto. To bardzo proste!

    Zarejestruj się

    Zaloguj się

    Posiadasz już konto? Zaloguj się poniżej.

    Zaloguj się

    • Ostatnio przeglądający   0 użytkowników

      Brak zarejestrowanych użytkowników przeglądających tę stronę.

    x