Activity中的常用进程函数与常用组件简述

来源:互联网 发布:java post 二进制流 编辑:程序博客网 时间:2024/06/06 16:35

Activity是负责屏幕的显示,每个Activity都存在一个显示界面,Activity是用户直接使用的体验。许多人都将“Activity”翻译为“活动”。多数可执行代码都是以活动的形式存在。开发者自己的活动都是重载Activity的一些函数来进行各种事件和消息的处理。下面介绍几个活动常常使用的几个方法和几个常用的界面组件的代码。

一.Android常用函数简述:

1. onCreate

    应用程序的一个活动启动后,系统会调用它的onCreate方法。所以onCreate方法主要是完成活动和程序的初始化工作。如创建自己的视图(使用setContentView方法),打开需要用到的数据库等自定义的操作。onCreate方法的使用格式常常是“onCreate(Bundle savedInstanceState)”,其中的Bundle类型的参数savedInstanceState保存的是该应用程序上一次执行时所保留的运行状态。

2. onStart

应用程序中的某个活动显示之前一般会调用onStart方法,此方法执行完毕会出现两种情况,一是活动显示于手机屏幕上,下一步由onResume方法控制;二是因为某些原因,如AndroidManifest文件设置不正确,活动不能显示于手机屏幕上,程序的控制权就会传递给onStop方法。

3. onResume

    当活动在前台显示时或者重新获得前台显示权,此时onResume方法就会被执行。活动处于运行状态,手机用户可以通过各种操作与活动实现交互。

4. onPause

    当一个活动将要交出前台显示权而又不被终止,当前活动的onPause方法就会被执行,执行完毕后失去前台显示权。所以在onPause方法中开发者一方面要注意保存所需要的信息,一方面要为节约手机资源做些考虑和行动,如停止消耗手机CPU或者电池电量的工作。

5. onStop

    被强行终止或者被其他程序夺去前台显示权。

6. onDestroy

活动被终止前执行的最后一个方法。被终止包括任务完成和被Android系统强行终止。

Android活动的周期可以用如下图所示来帮助理解(图片取自Android Application Development书籍,作者:Rick RogersJohn LombardoZigurd Mednieks& Blake Meike):




二.Android常用组件具体实现代码示例:

    这里只举例在XML布局文件中怎么实现这些组件和在java文件中实现的一些基本操作:

1.TextView(文本框):

  Main.xml最简单的初始化:

  <TextView  

    android:layout_width="fill_parent" 

    android:layout_height="wrap_content" 

    android:text="@string/hello"

/>

结果显示如下图:


2.ButtonImageButton(按钮):

  ButtonImageButton基本一样,只是一般Button上会显示文字,而ImageButton显示出来的是一张图片而不是文字。

  Buttonmain.xml文件如下:

  <Button 

       android:id="@+id/button1"

       android:layout_width="fill_parent"

       android:layout_height="wrap_content"

       android:text="Button"

       />

  在java文件中需要对复写按钮事件监听函数:

onCreate中的原代码:

@Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        

        Button btn=(Button) findViewById(R.id.button1);

        

        Button.OnClickListener btnLtn=new Button.OnClickListener(){

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

Toast.makeText(Button1Activity.this, "你点击了Button按钮", Toast.LENGTH_SHORT).show();

}

        

        };

        

        btn.setOnClickListener(btnLtn);

}

显示结果如下:


而对于ImageButton而言,其mian.xml文件定义部分如下:

<ImageButton 

       android:id="@+id/imageButton01"

       android:layout_width="wrap_content"

       android:layout_height="wrap_content"

       />

Java源文件中的onCreate方法:

@Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        

        //通过id获取关联

        ImageButton imbtn=(ImageButton) findViewById(R.id.imageButton01);

      //设置显示的图片

        imbtn.setImageResource(R.drawable.icon);

        

        //设置监听

        ImageButton.OnClickListener imLis=new ImageButton.OnClickListener(){

@Override

public void onClick(View v) {//这个函数里书写点击需要做的处理

// TODO Auto-generated method stub

Toast.makeText(ImageButton1Activity.this, "你点击了ImageButton按钮", Toast.LENGTH_SHORT).show();

}

        

        };

        

        //指定监听

        imbtn.setOnClickListener(imLis);

    }

显示结果:


3.EditText

main.xml

<EditText  

    android:id="@+id/editView"

    android:layout_width="fill_parent" 

    android:layout_height="wrap_content" 

    android:textColorHint="#0ffff0"

    android:hint="@string/hello"

    />

    <!-- textColorHint是设置提示字体的颜色 -->

    <!-- hint是设置提示内容 -->

Java代码中无需做任何改变就可以显示。



4.CheckBox

 Main.xml

<CheckBox 

    android:id="@+id/first"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:text="First"

    />

<CheckBox 

    android:id="@+id/second"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:text="Second"

/>

Java代码中onCreate初始化如下:

@Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        

        CheckBox first=(CheckBox) findViewById(R.id.first);

        CheckBox second=(CheckBox) findViewById(R.id.second);

        

        CheckBox.OnCheckedChangeListener listener=new CheckBox.OnCheckedChangeListener(){

@Override

public void onCheckedChanged(CompoundButton arg0, boolean arg1) {

if(arg1){

Toast.makeText(CheckBox1Activity.this, "你选择了"+arg0.getText(), Toast.LENGTH_SHORT).show();

}

                else{

Toast.makeText(CheckBox1Activity.this, "你取消了"+arg0.getText(), Toast.LENGTH_SHORT).show();

}

}

        

        };

        

        first.setOnCheckedChangeListener(listener);

        second.setOnCheckedChangeListener(listener);

}

显示结果如下:



5.RadioButton

  Main.xml

<RadioGroup

    android:id="@+id/rG"

    android:layout_width="fill_parent" 

    android:layout_height="wrap_content" 

    android:orientation="vertical"

    >

    <RadioButton 

       android:id="@+id/rB1" 

       android:text="first"

       />

    <RadioButton 

       android:id="@+id/rB2"

       android:text="second"

       />

</RadioGroup>

Java文件中的源代码:

RadioGroup rG;

RadioButton rb1,rb2;

    /** Called when the activity is first created. */

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        

        RadioGroup rG=(RadioGroup) findViewById(R.id.rG);

        rb1=(RadioButton)findViewById(R.id.rB1);

        rb2=(RadioButton)findViewById(R.id.rB2);

        

        RadioGroup.OnCheckedChangeListener listener=new RadioGroup.OnCheckedChangeListener(){

@Override

public void onCheckedChanged(RadioGroup group, int checkedId) {

// TODO Auto-generated method stub

if(checkedId==rb1.getId()){

Toast.makeText(RadioButton1Activity.this, "你选择了"+rb1.getText(), Toast.LENGTH_SHORT).show();

}

if(checkedId==rb2.getId()){

Toast.makeText(RadioButton1Activity.this, "你选择了"+rb2.getText(), Toast.LENGTH_SHORT).show();

}

}

        

        };

        

        rG.setOnCheckedChangeListener(listener);

}

显示结果:


6.Spinner

与上述两种选择相比较,Spinner占用屏幕面积资源最少。

Main.xml

<Spinner 

android:id="@+id/spinner" 

android:layout_width="fill_parent"

android:layout_height="wrap_content" 

/> 

Java源代码:

//内容

    String[] neirong={

    "first",

            "second",

    "third"

    };

    /** Called when the activity is first created. */

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        

        Spinner spn=(Spinner) findViewById(R.id.spinner);

        

              

        //导入

        ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,neirong);

        spn.setAdapter(adapter);

        

        

        //设置下拉列表风格

        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        

        Spinner.OnItemSelectedListener listener=new  Spinner.OnItemSelectedListener(){

@Override

public void onItemSelected(AdapterView<?> arg0, View arg1,

int arg2, long arg3) {

// TODO Auto-generated method stub

Toast.makeText(Spinner2Activity.this, "你选择了"+neirong[arg2], Toast.LENGTH_SHORT).show();

}

@Override

public void onNothingSelected(AdapterView<?> arg0) {

// TODO Auto-generated method stub

}

        

        };       

       spn.setOnItemSelectedListener(listener);

}

显示结果:



以上是自己开发Android的一点关于Activity界面的一些常常查看的代码,感觉是比较常用的,所以分享给大家吧!

注:文章参加"暑假大学生博客分享大赛—2011Android 成长篇"

本文链接:http://blog.csdn.net/beta112011/article/details/6637446


原创粉丝点击