改变原来界面布局的三种方式:


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这两个布局文件可以随意定义。