Membuat Splash Screen di Android Studio



Buatlah Activity Baru dengan nama Splash_Screen, kemudian buatlah layout untuk activity splash_screen nya, misalnya menambahkan sebuah gambar dan progressbar

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
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:theme="@android:style/Theme.NoTitleBar"
   
android:layout_width="fill_parent"
   
android:layout_height="fill_parent"
   
android:layout_gravity="center"
   
android:background="#0074b9"
   
tools:context="giviews.id.splash.Splash_Screen">

    <ImageView
       
android:id="@+id/imageView"
       
android:layout_width="wrap_content"
       
android:layout_height="wrap_content"
       
android:layout_alignParentBottom="true"
       
android:layout_centerHorizontal="true"
       
android:layout_marginBottom="247dp"
       
app:srcCompat="@drawable/favicon" />

    <ProgressBar
        
android:id="@+id/progressBar2"
       
style="@style/Widget.AppCompat.ProgressBar"
       
android:layout_width="wrap_content"
       
android:layout_height="wrap_content"
       
android:layout_alignTop="@+id/imageView"
       
android:layout_centerHorizontal="true"
       
android:layout_marginTop="124dp" />

</RelativeLayout>

kemudian untuk script javanya silakan masukan kode berikut:
package giviews.id.splash;



import android.content.Intent;

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;



import static android.view.Window.FEATURE_NO_TITLE;



public class Splash_Screen extends AppCompatActivity {



    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        this.requestWindowFeature(FEATURE_NO_TITLE);

        setContentView(R.layout.activity_splash__screen);

    Thread myThread = new Thread() {

        @Override

        public void run() {

            try {

                sleep(3000);

                Intent intent = new Intent(getApplicationContext(),MainActivity.class);

                startActivity(intent);

                finish();

            } catch (InterruptedException e) {

                e.printStackTrace();

            }

        }

    };

        myThread.start();

    }

}

Terakhir sesuikan kode di AndroidManifest anda seperti ini
<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    package="giviews.id.splash">



    <application

        android:allowBackup="true"

        android:icon="@mipmap/ic_launcher"

        android:label="@string/app_name"

        android:roundIcon="@mipmap/ic_launcher_round"

        android:supportsRtl="true"

        android:theme="@style/AppTheme">

        <activity android:name=".Splash_Screen">

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />



                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

        <activity

            android:name=".MainActivity"

            android:theme="@style/Base.V7.Theme.AppCompat"

            tools:ignore="DuplicateActivity">

            <meta-data

                android:name="android.support.PARENT_ACTIVITY"

                android:value="giviews.id.splash.MainActivity" />

        </activity>



    </application>



</manifest>


Silakan jalankan aplikasi anda, jika ada yang error bisa ditanyakan pada kolom komentar dibawah, terimakasih sudah berkunjung ke blog ini.

Membuat Notifikasi bergetar di Android

1.       Buatlah sebuah Projek di Android Studio, pilih empty activity

2.       tambahkan permission vibrate pada AndroidManifest.xml
<uses-permission android:name="android.permission.VIBRATE" />

3.       buatlah sebuah button untuk mengirim notifikasi
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
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="giviews.id.notificationview.MainActivity">

    <Button
       
android:id="@+id/btn_displaynotif"
       
android:layout_width="fill_parent"
       
android:layout_height="wrap_content"
       
android:text="Display Notification"
       
android:onClick="onClick"/>

</RelativeLayout>

4.       kemudian buat activity baru dengan nama NotificationViewActivity dengan cara klik kanan pada folder app pilih new -> activity -> empty activity. dan masukan textview pada activity_notification_view.xml
<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout 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="giviews.id.notificationview.NotificationViewActivity">



    <TextView

        android:id="@+id/textView"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="Diharapkan Semua Anggota BEM Rapat Di Aula Sekarang..!!"

        tools:layout_editor_absoluteX="9dp"

        tools:layout_editor_absoluteY="16dp" />



</RelativeLayout>

5.       Selanjutnya untuk file MainActivity.java masukan kode berikut
package giviews.id.notificationview;



import android.app.NotificationManager;

import android.app.PendingIntent;

import android.content.Context;

import android.content.Intent;

import android.os.Bundle;

import android.os.Vibrator;

import android.support.v4.app.NotificationCompat;

import android.support.v7.app.AppCompatActivity;

import android.view.View;



public class MainActivity extends AppCompatActivity {

    int notificationID = 1;



    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

    }



    public void onClick(View view) {

        displayNotification();

    }



    protected void displayNotification()

    {

        //---PendingIntent to launch activity if the user selects

        // this notification---

        Intent i = new Intent(this, NotificationViewActivity.class);

        i.putExtra("notificationID", notificationID);

        PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, i, 0);

        NotificationManager nm = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);

        NotificationCompat.Builder notifBuilder;

        notifBuilder = new NotificationCompat.Builder(this)

                .setSmallIcon(R.drawable.gbrnotif)

                .setContentTitle("Ada Meeting BEM Sekarang...!")

                .setContentText("Reminder: Rapat Akan Mulai 5 minutes")

                .setContentIntent(pendingIntent)

                .addAction(R.mipmap.ic_launcher,"Read More",pendingIntent);



        Vibrator vi;

        vi=(Vibrator) getSystemService(Context.VIBRATOR_SERVICE);

        if (vi.hasVibrator()){

            vi.vibrate(20000);

        }

        nm.notify(notificationID, notifBuilder.build());

    }

}

6.       dan pada NotificationViewActivity.java masukan kode berikut, sesuaikan packagenya dengan package teman-teman.

package giviews.id.notificationview;



import android.app.NotificationManager;

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;



public class NotificationViewActivity extends AppCompatActivity {



    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_notification_view);



        //---look up the notification manager service---

        NotificationManager nm = (NotificationManager)

                getSystemService(NOTIFICATION_SERVICE);

        //---cancel the notification that we started---

        nm.cancel(getIntent().getExtras().getInt("notificationID"));

    }

}


Selesai, silakan run aplikasi anda jika notifikasinya muncul berarti anda telah berhasil, jika ada yang error silakan ditanyakan pada kolom komentar di bawah.

Membuat Alert Dialog dengan Android Studio


Langkah Pertama buatlah button untuk memanggil alert dialognya

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
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="giviews.id.customalertdialog.MainActivity">


    <Button
       
android:id="@+id/btnShowDialog"
       
android:layout_width="wrap_content"
       
android:layout_height="wrap_content"
       
android:text="@string/show_dialog"
       
tools:layout_centerVertical="true"
       
tools:layout_centerHorizontal="true" />
</RelativeLayout>

Selanjutnya buat layout untuk isi dialognya, misalnya dialog untuk login. disini saya menamainya dengan dialog_login.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="vertical" android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:padding="5dp">



    <TextView

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_gravity="center"

        android:text="@string/login"

        android:id="@+id/lblLogin"

        android:textSize="25sp"

        android:layout_marginTop="5dp"

        android:textStyle="bold"/>



    <EditText

        android:id="@+id/etEmail"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:ems="10"

        android:layout_marginTop="10dp"

        android:inputType="textEmailAddress"

        android:hint="@string/email" />



    <EditText

        android:id="@+id/etPass"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:ems="10"

        android:layout_marginTop="5dp"

        android:hint="@string/password"

        android:inputType="textPassword" />



    <Button

        android:id="@+id/btnLogin"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:text="@string/login_label"

        android:background="@color/colorAccent"

        android:textColor="@android:color/white"

        android:layout_marginTop="10dp"/>





</LinearLayout>

untuk skrip java nya silakan masukan kode berikut

package giviews.id.customalertdialog;



import android.support.v7.app.AlertDialog;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;



public class MainActivity extends AppCompatActivity {



    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);



        Button mShowDialog = (Button) findViewById(R.id.btnShowDialog);

        mShowDialog.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View v) {

                AlertDialog.Builder mBuilder = new AlertDialog.Builder(MainActivity.this);

                View mView = getLayoutInflater().inflate(R.layout.dialog_login, null);

                final EditText mEmail = (EditText) mView.findViewById(R.id.etEmail);

                final EditText mPass = (EditText) mView.findViewById(R.id.etPass);

                Button mLogin = (Button) mView.findViewById(R.id.btnLogin);



                mLogin.setOnClickListener(new View.OnClickListener() {

                    @Override

                    public void onClick(View v) {

                        if (!mEmail.getText().toString().isEmpty() && !mPass.getText().toString().isEmpty()) {

                            Toast.makeText(MainActivity.this,

                                    R.string.login_success,

                                    Toast.LENGTH_SHORT).show();

                        }else{

                            Toast.makeText(MainActivity.this,

                                    R.string.login_error_msg,

                                    Toast.LENGTH_SHORT).show();

                        }

                    }

                });

                mBuilder.setView(mView);

                AlertDialog dialog = mBuilder.create();

                dialog.show();

            }

        });

    }

}


Selanjutnya jalankan aplikasi anda, jika alert dialognya muncul maka berhasil, jika ada error silakan tulis pada kolom komentar dibawah. terimakasih sudah berkunjung ke blog ini.

Situs - situs untuk belajar Programming lengkap

Berikut ini adalah daftar situs untuk belajar programming :

1. Sekolah Koding

Sekolah koding menyediakan tutorial pemrograman web secara lengkap mulai dari html, css, php, javascript dll. Tutorial yang ada di sekolah koding berbasi video. Pembahasanya juga sangat mudah dimengerti, selain itu kualitas video nya juga tinggi. Sekolah koding menyediakan sistem berlangganan. sekolah koding bisa dikunjungi di sekolahkoding.com

2. Youtube

Di Youtube ada berbagai channel pemrograman, mulai dari pemrograman web, pemrograman desktop, mobile dan juga cara pembuatan game. Berbagai channel yang menurut saya bagus diantaranya channel Sekolah kodingTVAC StudioProgramming KnowledgeWeblessonCodecourseRobby Diana PutraBrackeysCharger Games

3. Dunia Ilkom

Dunia Ilkom menyediakan Buku Seperti HTML Uncover, CSS Uncover, PHP Uncover, dan Javascript Uncover. Dunia Ilkom bisa dikunjungi di duniailkom.com

4. Udacity

Ada berbagai macam pelajaran di udacity. untuk informasi selengkapnya anda bisa mengunjungi udacity di udacity.com

Membuat Aplikasi Menu Makanan dengan android Studio

Buatlah project baru di android studio beri nama MenuMakanan kemudian pilih empty activity

Step pertama tambahkan dependecies di gradle (Modul App) 'com.android.support:cardview-v7:26.+' dan 'com.android.support:design:26.+' kemudian klik Sync Now.

Selanjutnya adalah copykan foto ke drawable (fotonya ada dalam folder di bawah), copykan juga string.xml, color.xml, dan styles.xml di folder view.

kemudian copykan kode layout activity_main.xml berikut ini :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    android:orientation="vertical"
    tools:context="id.giviews.menumakanan.MainActivity">

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="150dp"
        android:src="@drawable/logo_rm"
        android:background="@color/colorLogo"/>

    <ListView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/listmakanan">

    </ListView>

</LinearLayout>

kemudian buat activity_detail_makanan lalu copyka code berikut :
<?xml version="1.0" encoding="utf-8"?>
<ScrollView android:layout_width="match_parent"
    android:layout_height="wrap_content"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <LinearLayout 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"
        android:orientation="vertical"
        tools:context="id.giviews.menumakanan.DetailMakanan">

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="200dp"
            android:id="@+id/imgdetailmakanan"
            android:src="@drawable/bakso" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="20sp"
            android:fontFamily="monospace"
            android:textStyle="bold"
            android:gravity="center"
            android:text="Nama Makanan"
            android:id="@+id/txtdetailnamamakanan"/>
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="20sp"
            android:fontFamily="monospace"
            android:textStyle="bold"
            android:gravity="center"
            android:text="Harga Makanan"
            android:id="@+id/txtdetailhargamakanan"/>
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="18dp"
            android:textStyle="bold"
            android:fontFamily="monospace"
            android:text="Detail Makanan"
            android:id="@+id/txtdetailmakanan"/>

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:src="@drawable/ic_local_phone_black_24dp"
            android:id="@+id/imgcall"/>

    </LinearLayout>

</ScrollView>

dan buat tampilancustomlist.xml ketikan kode berikut:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v7.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        app:cardBackgroundColor="@color/colorAccent">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <ImageView
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:id="@+id/imgmakanan"
            android:scaleType="fitXY"
            android:src="@drawable/bakso"/>

         <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:layout_gravity="center">

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:textSize="25sp"
                android:text="Nama Makanan"
                android:layout_gravity="center"
                android:fontFamily="cursive"
                android:textStyle="bold"
                android:layout_marginLeft="15dp"
                android:id="@+id/txtmakanan"
                android:textColor="#000000"/>

             <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:textSize="25sp"
                android:text="Harga Makanan"
                android:layout_gravity="center"
                android:fontFamily="cursive"
                android:textStyle="bold"
                android:layout_marginLeft="15dp"
                android:id="@+id/txtharga"
                android:textColor="#000000"/>

            </LinearLayout>
    </LinearLayout>
    </android.support.v7.widget.CardView>
</LinearLayout>

selanjutnya di java MainActivity.java ketikan kode seperti ini:
package id.giviews.menumakanan;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;

import id.giviews.menumakanan.adapter.CustomListAdapter;

public class MainActivity extends AppCompatActivity {

    //declarasi Variable
    ListView listmakanan;

    //membuat Array
    String nama_makanan[] = {"bakso","gado-gado","Gorengan","Gudeg","Opor-Ayam","Pempek",
            "Rawon","Rendang","Soto","Nasi Kuning","Otak-otak","Sate","Pecel Lele","Ketoprak"};

    String harga_makanan[] = {"Rp. 15.000","Rp. 10.000","Rp. 4.000","Rp. 30.000","Rp. 55.000","Rp. 30.000",
            "Rp. 20.000","Rp. 65.000","Rp. 18.000","Rp. 8.000","Rp. 7.000","Rp. 25.000","Rp. 15.000","Rp. 12.000"};

    int gambar_makanan[]={R.drawable.bakso,R.drawable.gadogado,R.drawable.gorengan,R.drawable.gudeg,
            R.drawable.oporyam,R.drawable.pempek,R.drawable.rawon,R.drawable.rendang,R.drawable.soto,R.drawable.nasikuning,
            R.drawable.otakotak,R.drawable.sate,R.drawable.pecellele,R.drawable.ketoprak};

    int detail_makanan[]={R.string.bakso,R.string.gadogado,R.string.gorengan,R.string.gudeg,
            R.string.oporyam,R.string.pempek,R.string.rawon,R.string.rendang,R.string.soto,R.string.nasikuning,
            R.string.otakotak,R.string.sate,R.string.pecellele,R.string.ketoprak};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //inisialisasi
        listmakanan = (ListView)findViewById(R.id.listmakanan);

        CustomListAdapter adapter = new CustomListAdapter(this,nama_makanan,gambar_makanan,harga_makanan);

        //untuk mengisi data ke widget list view
        listmakanan.setAdapter(adapter);

        //aksi atau event listener dari widget list view

        listmakanan.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                Intent kirimdata = new Intent(MainActivity.this,DetailMakanan.class);
                kirimdata.putExtra("gbrM",gambar_makanan[i]);
                kirimdata.putExtra("namaM",nama_makanan[i]);
                kirimdata.putExtra("hargaM",harga_makanan[i]);
                kirimdata.putExtra("detailM",detail_makanan[i]);

                startActivity(kirimdata);
            }
        });

    }
}

lalu untuk DetailMakanan.java sesuikan kodenya seperti ini :
package id.giviews.menumakanan;

import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;

public class DetailMakanan extends AppCompatActivity {

    ImageView imgdetailmakanan;
    TextView txtdetailnamamakanan;
    TextView txtDetalmakanan;
    TextView txthargamakanan;
    ImageView imgcall;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_detail_makanan);

        imgdetailmakanan = (ImageView) findViewById(R.id.imgdetailmakanan);
        imgcall = (ImageView) findViewById(R.id.imgcall);

        imgcall.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:089689696474"));
                if (ActivityCompat.checkSelfPermission(DetailMakanan.this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
                    // TODO: Consider calling
//                        ActivityCompat#requestPermissions
                    // here to request the missing permissions, and then overriding
//                       public void onRequestPermissionsResult(int requestCode, String[] permissions,
//                                                              int[] grantResults)
                    // to handle the case where the user grants the permission. See the documentation
                    // for ActivityCompat#requestPermissions for more details.

//                    return;

                    String toDial="tel:089689696474";

                    startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse(toDial)));

                }
                startActivity(intent);
            }
        });

        txtdetailnamamakanan = (TextView)findViewById(R.id.txtdetailnamamakanan);
        txtDetalmakanan = (TextView)findViewById(R.id.txtdetailmakanan);
        txthargamakanan = (TextView)findViewById(R.id.txtdetailhargamakanan);


        Intent terimadata = getIntent();

        txtdetailnamamakanan.setText(terimadata.getStringExtra("namaM"));
        txthargamakanan.setText(terimadata.getStringExtra("hargaM"));
        txtDetalmakanan.setText(terimadata.getIntExtra("detailM",0));
        imgdetailmakanan.setImageResource (terimadata.getIntExtra("gbrM",0));

    }
}

kemudian buat pakage di java dengan nama adapter. didalam package adapter buat file CustomListAdapter.java dengan kode seperti ini :
package id.giviews.menumakanan;

import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;

public class DetailMakanan extends AppCompatActivity {

    ImageView imgdetailmakanan;
    TextView txtdetailnamamakanan;
    TextView txtDetalmakanan;
    TextView txthargamakanan;
    ImageView imgcall;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_detail_makanan);

        imgdetailmakanan = (ImageView) findViewById(R.id.imgdetailmakanan);
        imgcall = (ImageView) findViewById(R.id.imgcall);

        imgcall.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:089689696474"));
                if (ActivityCompat.checkSelfPermission(DetailMakanan.this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
                    // TODO: Consider calling
//                        ActivityCompat#requestPermissions
                    // here to request the missing permissions, and then overriding
//                       public void onRequestPermissionsResult(int requestCode, String[] permissions,
//                                                              int[] grantResults)
                    // to handle the case where the user grants the permission. See the documentation
                    // for ActivityCompat#requestPermissions for more details.

//                    return;

                    String toDial="tel:089689696474";

                    startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse(toDial)));

                }
                startActivity(intent);
            }
        });

        txtdetailnamamakanan = (TextView)findViewById(R.id.txtdetailnamamakanan);
        txtDetalmakanan = (TextView)findViewById(R.id.txtdetailmakanan);
        txthargamakanan = (TextView)findViewById(R.id.txtdetailhargamakanan);


        Intent terimadata = getIntent();

        txtdetailnamamakanan.setText(terimadata.getStringExtra("namaM"));
        txthargamakanan.setText(terimadata.getStringExtra("hargaM"));
        txtDetalmakanan.setText(terimadata.getIntExtra("detailM",0));
        imgdetailmakanan.setImageResource (terimadata.getIntExtra("gbrM",0));

    }
}

dan terakhir sesuikan AndroidManifest.xml seperti ini:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="id.giviews.menumakanan">

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

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".DetailMakanan" />
    </application>

</manifest>

Lalu coba jalankan aplikasi anda, jika anda ingin melihat cara penempatanya bisa anda lihat di vidio berikut ini



dan untuk source kodenya bisa anda download di sini

Selamat mencoba jika ada yang error silakan ditanyakan pada kolom komentar di bawah