본문 바로가기

android

[j android] 다이얼로그(Dialog)에 EditText 추가하기

728x90
반응형

 

 지난번 포스팅에서 webView추가를 했었는데 url 부분을 다이얼로그를 띄어서 페이지를 이동하는 코딩을 하겠습니다.

 

* 지난번 포스팅 참고

2019/10/21 - [android] - [j android] WebView 추가하기

 

[j android] WebView 추가하기

웹브라우저를 앱 안에 넣고 싶을 때는 웹뷰를 사용한다. 1) 먼저 인터넷에 접속해야 되기 때문에 매니페스트에 인터넷 권한을 넣어준다. 2) xml에..

yj95.tistory.com

 

1) 간단히 다이얼로그 버튼과 웹뷰를  넣었습니다.(activity_main.xml)

 

<?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=".MainActivity">

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

        <Button
            android:id="@+id/go"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="주소입력" />
    </LinearLayout>
    <WebView
        android:id="@+id/webview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>


</LinearLayout>

 

2) 다이얼로그 xml을 꾸며줍니다. 간단하게 EditText에 주소를 입력하도록 구현했습니다. (dialog_url.xml)

 

<?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:orientation="vertical"
    android:layout_width="300dp"
    android:layout_height="match_parent"
    android:padding="5dp">


    <TextView
        android:id="@+id/textView2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="주소를 입력하세요."
        android:textColor="#9C27B0"
        android:textSize="23dp" />

    <EditText
        android:id="@+id/url"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="15"
        android:hint="ex) http://www.aaa.com"
        android:inputType="textPersonName" />


</LinearLayout>

 

3) 버튼을 누르면 다이얼로그 창 띄우기

 - LinearLayout : 내가 만든 dialog_url.xml을 연결시켜줌

 - setPositiveButton을 누르면 webview에 url를 load 시켜줌

 - setNegativeButton을 누르면 dismiss() 메서드를 사용해 다이얼로그를 없애줌. 

final LinearLayout linear = (LinearLayout) View.inflate(MainActivity.this, R.layout.dialog_url, null);

                new AlertDialog.Builder(MainActivity.this)
                        .setView(linear)
                        .setPositiveButton("확인", new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int whichButton) {
                                EditText url = (EditText) linear.findViewById(R.id.url);
                                String value = url.getText().toString();
                                webView.loadUrl(value);
                                dialog.dismiss();
                            }
                        })
                        .setNegativeButton("취소", new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int whichButton) {
                                dialog.dismiss();
                            }
                        })
                        .show();

 

** 실행화면

 

 

728x90
반응형