改变原来界面布局的三种方式:
1、第一种方式:
LayoutInflater li = LayoutInflater.from(this);
具体代码:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); //原来的布局
}
public void click(View view){
//改变本界面的布局
//布局填充器
//获取此对象有三种方式:
LayoutInflater ll = LayoutInflater.from(this) ;//获得填充对象
View v = ll.inflate(R.layout.login, null) ;//重新加载布局
setContentView(v) ;//填充布局
}
}
2、第二种方式:
LayoutInflater li = getLayoutInflater();
具体代码:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);//原来的布局
}
public void click(View view){
//改变本界面的布局
//布局填充器
//获取此对象有三种方式:
LayoutInflater out = getLayoutInflater() ;//获得填充对象
View v = out.inflate(R.layout.login, null) ;//加载布局文件
setContentView(v) ;//填充布局
}
}
3、第三种方式:
LayoutInflater ll= (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE) ;
具体代码:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);//原来的布局
}
public void click(View view){
//改变本界面的布局
//布局填充器
//获取此对象有三种方式:
LayoutInflater ll= (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE) ;//获得填充对象
View v = ll.inflate(R.layout.login, null) ;//加载布局文件
setContentView(v) ;//填充布局
}
}
在例子中有两个布局文件activity_main.xml 和 login.xml这两个布局文件可以随意定义。