Pada kesempatan ini gwnbs akan berbagi mengenai cara bagaimana kodingan untuk mendapatkan informasi tersebut, caranya lumayan sederhana dan mudah, tentunya bagi Anda yang belum tahu caranya ya, kalau sudah tahu berarti Anda sudah tahu dan tidak perlu dilanjutkan.
activity_main.xml :
Karena kita disini memunculkan informasi melalui AlertDialog custom, maka kita membutuhkan layout untuk di inflate. Berikut layout custom untuk alert dialog tersebut, dengan nama layout_dialog.xml.
layout_dialog.xml :
Di dalam layout diatas kita memiliki 3 TextView. TextView pertama hanya sebagai judul dari dialog, TextView kedua yang nantinya akan kita setel nilainya untuk menampilkan informasi mengenai perangkat, dan TextView terakhir sebagai tombol untuk menutup dialog.
Disini kita akan menampilkan beberapa informasi mengenai perangkat Android yang menggunakan aplikasi kita. Misalnya di activity_main.xml kita memiliki sebuah tombol yang akan memunculkan informasi mengenai perangkat melalui dialog.
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/buttonInfo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="serif"
android:text="Show Information"
android:textColor="@color/white"
android:textSize="20sp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
layout_dialog.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"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="30dp"
android:background="@color/black"
android:orientation="vertical"
android:padding="20dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="20dp"
android:fontFamily="serif"
android:text="Device Information"
android:textColor="@color/white"
android:textSize="25sp"
android:textStyle="bold" />
<TextView
android:id="@+id/textDeviceInformation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="serif"
android:textColor="@color/white"
android:textSize="20sp" />
<TextView
android:id="@+id/textCloseDialog"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:layout_marginTop="30dp"
android:fontFamily="serif"
android:gravity="center"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:text="Close"
android:textAllCaps="true"
android:textColor="@color/teal_700"
android:textSize="22sp"
android:textStyle="bold" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
Pada contoh ini kita akan menyetel nilai TextView informasi perangkat menggunakan mode HTML supaya warna teks dapat di kustominasi. Namun juga nantintya akan diberikan penyetelan TextView secara normal.
Untuk mendapatkan informasi, kita memanggil kelas Build diikuti nama dari informasi yang diinginkan. Misalnya : Build.VERSION.SDK_INT untuk mendapatkan informasi mengenai versi SDK dari perangkat Android.
MainActivity.java :
Jika Anda ingin menggunakan mode menyetel teks secara biasa, silahkan gantikan metode private menyetel nilai string TextView diatas menjadi kode dibawah seperti dibawah ini :
Informasi diatas hanya sebagian, masih banyak lagi informasi yang bisa kita dapatkan. Baik, sekian informasi sederhana ini. Terimakasih untuk waktu dan kunjungannya, jika ada pertanyaan silahkan diposting dikomentar.
MainActivity.java :
package com.gwnbs.systeminformation;
import android.graphics.drawable.ColorDrawable;
import android.os.Build;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.TextView;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.text.HtmlCompat;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//metode klik tombol untuk memunculkan dialog
findViewById(R.id.buttonInfo).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
dialogDeviceInformation();
}
});
}
//Memunculkan dialog
private void dialogDeviceInformation() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
LayoutInflater inflater = LayoutInflater.from(this);
View view = inflater.inflate(R.layout.layout_dialog, null);
TextView textDeviceInformation = view.findViewById(R.id.textDeviceInformation);
builder.setView(view);
setTextToDeviceInformation(textDeviceInformation);
final AlertDialog dialogInformation = builder.create();
if (dialogInformation.getWindow() !=null) {
dialogInformation.getWindow().setBackgroundDrawable(new ColorDrawable(0));
}
view.findViewById(R.id.textCloseDialog).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
dialogInformation.dismiss();
}
});
dialogInformation.show();
}
//metode private menyetel nilai textview dengan mode HTML
private void setTextToDeviceInformation(TextView textDeviceInformation) {
textDeviceInformation.setText(HtmlCompat.fromHtml("<font color=green>Model</font> : " + Build.MODEL +
"<br/><font color=green>ID</font> : " + Build.ID +
"<br/><font color=green>Manufacturer</font> : " + Build.MANUFACTURER +
"<br/><font color=green>Brand</font> : " + Build.BRAND +
"<br/><font color=green>Type</font> : " + Build.TYPE +
"<br/><font color=green>User</font> : " + Build.USER +
"<br/><font color=green>Base</font> : " + Build.VERSION_CODES.BASE +
"<br/><font color=green>Incremental</font> : " + Build.VERSION.INCREMENTAL +
"<br/><font color=green>Android SDK</font> : " + Build.VERSION.SDK_INT +
"<br/><font color=green>Board</font> : " + Build.BOARD +
"<br/><font color=green>Host</font> : " + Build.HOST +
"<br/><font color=green>Fingerprint</font> : " + Build.FINGERPRINT +
"<br/><font color=green>Android Version</font> : " + Build.VERSION.RELEASE,
HtmlCompat.FROM_HTML_MODE_LEGACY));
}
}
private void setTextToDeviceInformation(TextView textDeviceInformation) {
textDeviceInformation.setText("Model : " + Build.MODEL + "\n" +
"ID : " + Build.ID + "\n" +
"Manufacturer : " + Build.MANUFACTURER + "\n" +
"Brand : " + Build.BRAND + "\n" +
"Type : " + Build.TYPE + "\n" +
"User : " + Build.USER + "\n" +
"Base : " + Build.VERSION_CODES.BASE + "\n" +
"Incremental : " + " " + Build.VERSION.INCREMENTAL + "\n" +
"Android SDK : " + Build.VERSION.SDK_INT + "\n" +
"Board : " + Build.BOARD + "\n" +
"Host : " + Build.HOST + "\n" +
"Fingerprint : " + Build.FINGERPRINT + "\n" +
"Android Version : " + Build.VERSION.RELEASE);
}
0 comments:
Post a Comment