setContentView方法

来源:互联网 发布:学日语的游戏知乎 编辑:程序博客网 时间:2024/06/05 02:26

setContentView(R.layout.main)在Android里面,这句话是什么意思?

R.layout.main是个布局文件即控件都是如何摆放如何显示的,setContentView就是设置一个Activity的显示界面,这句话就是设置这个这句话所再的Activity采用R.layout下的main布局文件进行布局
使用setContentView可以在Activity中动态切换显示的View,这样,不需要多个Activity就可以显示不同的界面,因此不再需要在Activity间传送数据,变量可以直接引用。但是,在android SDK给我们建的默认的Hello World程序中,调用的是setContentView(int layoutResID)方法,如果使用该方法切换view,在切换后再切换回,无法显示切换前修改后的样子,也就是说,相当于重新显示一个view,并非是把原来的view隐藏后再显示。其实setContentView是个多态方法,我们可以先用LayoutInflater把布局xml文件引入成View对象,再通过setContentView(View view)方法来切换视图。因为所有对View的修改都保存在View对象里,所以,当切换回原来的view时,就可以直接显示原来修改后的样子。

android开发中如果想实现布局页面的跳转可以使用setContentView()设置跳转到需要的布局文件上面,实现代码如下:Java代码 package com.lyj.demo;  import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; /** *  * @author lyj *  实现不同Layout的转换功能,setContentview()用法; */ public class setContentViewDemo extends Activity {     /** Called when the activity is first created. */     @Override     public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.main);                  // 以findViewById()取得Button对象并添加事件onClickLisener         Button button1=(Button)findViewById(R.id.bt1);         button1.setOnClickListener(new Button.OnClickListener(){             @Override             public void onClick(View v) {                 goToLayout2();                                           }});             }     // 将layout由main.xml切换成mylayout.xml     public void goToLayout2() {            // 将layout改成mylayout            setContentView(R.layout.mylayout);            Button b2 = (Button) findViewById(R.id.bt2);            b2.setOnClickListener(new Button.OnClickListener() {                public void onClick(View v) {                    goToLayout1();                }            });        }      // 将layout由mylayout.xml切换成main.xml     public void goToLayout1() {         setContentView(R.layout.main);         Button bt1 = (Button) findViewById(R.id.bt1);         bt1.setOnClickListener(new Button.OnClickListener() {             public void onClick(View v) {                 goToLayout2();             }         });     }   }   主布局的mai.xmlJava代码 <?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="欢迎来到小李的博客"     />  <Button     android:id="@+id/bt1"     android:layout_width="wrap_content"     android:layout_height="wrap_content"     android:text="点击进入Layout2"  /> </LinearLayout>  需要跳转到的布局文件mylayout.xmlJava代码 <?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"     android:background="#ffffffff"      > <TextView       android:layout_width="fill_parent"      android:layout_height="wrap_content"      android:text="Welcom to my bog"     />  <Button     android:id="@+id/bt2"     android:layout_width="fill_parent"     android:layout_height="wrap_content"     android:text="点击进入Laout1"     /> </LinearLayout> 

 

本文出自“飞翔的小鸟”

0 0