LayoutInflater 객체를 얻는 3가지 방법

 

LayoutInflater는 레이아웃 XML 파일로부터(XML로 작성된 layout 파일로부터) 

그에 해당하는 View 객체를 획득하는데 유용하게 사용되는 클래스이다.

현재의 레이아웃 view에(setContentView()로 얻은 view에) 

동적으로 특정 layout XML 파일의 내용을 view에 추가하고 싶을 때 유용하게 사용이 된다.


다음과 같이 3가지 방식으로 객체를 얻을수 있다.


  • LayoutInflater inflater = 
                    (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);

  • LayoutInflater inflater = Activity.getLayoutInflater();

  • LayoutInflater inflater = LayoutInflater.from(Context context);


내가 작성한 TextView를 AlertDialog에 채용해서 내가 원하는 형태로 AlertDialog를 보여주고자 할 경우 

아래와 같이 LayoutInflater를 이용하면 된다.


alert_text.xml의 내용이 다음과 같을 경우 


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

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

    android:id="@+id/spnTxt"

    android:layout_width="fill_parent"

    android:layout_height="wrap_content"

    android:padding="15dp"

    android:textColor="#FF99FF"

    android:textSize="20sp"

    />


이 레이아웃(alert_text.xml)을 AlertDialog의 view로 사용 할려면 LayoutInflater를 이용해서 다음과 같이 하면 된다.


LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);


TextView spnTxt = (TextView)inflater.inflate(R.layout.alert_text, null);

spnTxt.setText("필요한 문자열...");


AlertDialog.Builder adb = new AlertDialog.Builder(this);

adb.setView(spnTxt);

adb.setPositiveButton("확인", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

//원하는 기능

}

)};


adb.show();




+ Recent posts