支持国产操作系统国产应用!

捉蛋网

当前位置: 捉蛋网>教程>Android开发>

Android 说说LayoutInflater

时间:2013-06-05 16:34来源: 作者: 点击:

       在实际开发种LayoutInflater这个类还是非常有用的,它的作用类似于 findViewById()。
不同点是LayoutInflater是用来找layout下xml布局文件,并且实例化!而findViewById()是找具体xml下的具体 widget控件(如:Button,TextView等)。

        为了让大家容易理解我做了一个简单的Demo,主布局main.xml里有一个TextView和一个Button,当点击Button,出现 Dialog,而这个Dialog的布局方式是我们在layout目录下定义的custom_dialog.xml文件(里面左右分布,左边 ImageView,右边TextView)。

java代码:
<?xml version=\"1.0\" encoding=\"utf-8\"?>
<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"
android:orientation=\"vertical\"
android:layout_width=\"fill_parent\"
android:layout_height=\"fill_parent\"
>
<TextView
android:layout_width=\"fill_parent\"
android:layout_height=\"wrap_content\"
android:text=\"@string/hello\"
/>
<Button
android:id=\"@+id/myButton\"
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:text=\"ShowCustomDialog\"/>

</LinearLayout>

//custom_dialog.xml

<?xml version=\"1.0\" encoding=\"utf-8\"?>
<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"
android:orientation=\"horizontal\" android:layout_width=\"fill_parent\"
android:layout_height=\"fill_parent\" android:padding=\"10dp\">
<ImageView android:id=\"@+id/image\"
android:layout_width=\"wrap_content\"
android:layout_height=\"fill_parent\" android:layout_marginRight=\"10dp\" />

<TextView android:id=\"@+id/text\" android:layout_width=\"wrap_content\"
android:layout_height=\"fill_parent\" android:textColor=\"#7CFC00\" />
</LinearLayout>

java代码:
package eoe.demo;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

public class Activity01 extends Activity implements OnClickListener{
private Button button;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button = (Button)findViewById(R.id.myButton);
button.setOnClickListener(this);
}

@Override
public void onClick(View v) {
showCustomDialog();
}


public void showCustomDialog(){
AlertDialog.Builder builder;
AlertDialog alertDialog;
Context mContext = Activity01.this;


//下面3种方法都可以
//LayoutInflater inflater = getLayoutInflater();
// mInflater = LayoutInflater.from(this);

LayoutInflater inflater = (LayoutInflater)mContext.getSystemServic(LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.custom_dialog, null);
TextView text = (TextView)layout.findViewById(R.id.text);
text.setText(\"Hello, Welcome to xh blog\");
ImageView image = (ImageView)layout.findViewById(R.id.image);
//给ImageView 设置图标

image.setImageResource(R.drawable.icon);
builder = new AlertDialog.Builder(mContext);
builder.setView(layout);
alertDialog = builder.create();
alertDialog.show();
}
}

(责任编辑:捉蛋网-刷机)
............................................................................................... ...............................................................................................

 

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------