Pages

Membuat TextField di Dalam AlertDialog [Android]

Minggu, 18 Oktober 2015

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
<?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>

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>

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();
                }
            }
        });
    }
}


Selesai, silahkan coba di emulator kesayangan kalian atau langsung di run juga gapapa :v
sekian dari aku, semoga bermanfaat!

Wassalamualaikum Wr. Wb~

Tidak ada komentar:

Posting Komentar