Assalamualaiku Wr. Wb~
Akhir-akhir ini aku lagi seneng sama pemrograman android. Nah pas nyoba bikin CRUD (Create Read Update Delete) di Android, aku melihat ada ketidakefektifan ketika membuat form penginputan. Aku berpikir daripada membuat activity baru kenapa ga bikin dialog yang muncul seperti JDialog di Java. Nah akhirnya aku cari cari ternyata bisa membuat TextField/EditText di dalam AlertDialog dan sekarang aku bagikan pada kalian!
Oke! Pertama kalian layoutnya dulu, copy kode ini ke dalam activity_main.xml
Oke! Pertama kalian layoutnya dulu, copy kode ini ke dalam activity_main.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">
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="TextField-AlertDialog"
android:id="@+id/button"
android:layout_gravity="center_horizontal" />
</LinearLayout>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="TextField-AlertDialog"
android:id="@+id/button"
android:layout_gravity="center_horizontal" />
</LinearLayout>
Kemudian buat layout baru dan beri nama textfield.xml lalu copy kode ini ke dalamnya
<?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">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/editText"
android:layout_gravity="center_horizontal" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/editText2"
android:layout_gravity="center_horizontal" />
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/editText"
android:layout_gravity="center_horizontal" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/editText2"
android:layout_gravity="center_horizontal" />
</LinearLayout>
Terakhir, copy kode ini ke dalam MainActivity.java
package koukousei.textfield_alertdialog;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btnAlert = (Button) findViewById(R.id.button);
btnAlert.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LayoutInflater layoutInflater = (LayoutInflater) getBaseContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final View layoutTextField = layoutInflater.inflate(R.layout.textfield, null, false);
final EditText text1 = (EditText) layoutTextField.findViewById(R.id.editText);
final EditText text2 = (EditText) layoutTextField.findViewById(R.id.editText2);
try{
final AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext());
builder.setTitle("Masukkan Apa yang Kamu Mau")
.setView(layoutTextField)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getBaseContext(), text1.getText().toString() + "\n" +
text2.getText().toString(), Toast.LENGTH_SHORT).show();
}
}).show();
}catch (Exception e){
Toast.makeText(getBaseContext(), "Error! "+e, Toast.LENGTH_SHORT).show();
}
}
});
}
}
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btnAlert = (Button) findViewById(R.id.button);
btnAlert.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LayoutInflater layoutInflater = (LayoutInflater) getBaseContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final View layoutTextField = layoutInflater.inflate(R.layout.textfield, null, false);
final EditText text1 = (EditText) layoutTextField.findViewById(R.id.editText);
final EditText text2 = (EditText) layoutTextField.findViewById(R.id.editText2);
try{
final AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext());
builder.setTitle("Masukkan Apa yang Kamu Mau")
.setView(layoutTextField)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getBaseContext(), text1.getText().toString() + "\n" +
text2.getText().toString(), Toast.LENGTH_SHORT).show();
}
}).show();
}catch (Exception e){
Toast.makeText(getBaseContext(), "Error! "+e, Toast.LENGTH_SHORT).show();
}
}
});
}
}
Selesai, silahkan coba di emulator kesayangan kalian atau langsung di run juga gapapa :v
sekian dari aku, semoga bermanfaat!
Wassalamualaikum Wr. Wb~