南小爵

站在巨人肩膀上看风景。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

android学习—— LayoutInflater的使用

Posted on 2014-02-07 09:35  南小爵  阅读(187)  评论(0编辑  收藏  举报

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

   第一种:

1 LayoutInflater inflater = LayoutInflater.from(this);  
2 View layout = inflater.inflate(R.layout.main, null); 
View Code

 第二种:仅在继承activity的情况下使用。

1     LayoutInflater inflater = getLayoutInflater();  
2     View layout = inflater.inflate(R.layout.main, null);  
View Code

 第三种:

1 LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);  
2 View layout = inflater.inflate(R.layout.main, null); 
View Code

实例:

 1     public class LayoutInflaterActivity extends Activity {  
 2         private EditText et;  
 3         private Button btn;  
 4       
 5         @Override  
 6         public void onCreate(Bundle savedInstanceState) {  
 7             super.onCreate(savedInstanceState);  
 8             // 第一种方法  
 9             LayoutInflater inflater = LayoutInflater.from(this);  
10             View layout = inflater.inflate(R.layout.main, null);  
11             // 第二种方法  
12             // LayoutInflater inflater = getLayoutInflater();  
13             // View layout = inflater.inflate(R.layout.main, null);  
14             // 第三种方法  
15             // LayoutInflater inflater = (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);  
16             // View layout = inflater.inflate(R.layout.main, null);  
17             // 这里是通过事先获得的布局文件来实例化具体控件,并且可以根据情况自定义控件  
18             et = (EditText) layout.findViewById(R.id.edittext);  
19             et.setBackgroundColor(Color.YELLOW);  
20             btn = (Button) layout.findViewById(R.id.btn);  
21             btn.setBackgroundColor(Color.CYAN);  
22             // 显示  
23             setContentView(layout);  
24         }  
25     }  
View Code