Activity

一:实现不同的Activity的简单跳转

新建一个新的工程,新建号Maintivity

实现一个Activity跳转到另一个Activity的关键是先声明好一个新的Activity后,必须在AndroidMainfest上注册对应的Activity,之后我们还得给新的Activity添加一个新的资源文件,跳转Activity我们通过传入Intent来激活Activity

本例新建一个Next.java的Activity,在新建一个新类的情况下我们可以

image当然我们在这里选择SuperClass填写的Activity,并且在onCreate方法中一定要通过setContentView(方法来声明当前Activity来显示的资源文件)

public class Next extends Activity {

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        // TODO Auto-generated method stub

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_next);

    }

}

在这里我们给Activity添加一个资源文件,actity_next.xml的资源文件,这里我们只是给资源文件添加一个简单的进度条来作为显示

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical" >



    <ProgressBar

        android:id="@+id/progressBar1"

        style="?android:attr/progressBarStyleLarge"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content" />



</LinearLayout>

当然在MainActivity中的资源视图activity_main.xml中添加一个button控件来实现视图的跳转

在button中我们通过给button添加事件来跳转

public class MainActivity extends Activity {

    private Button button;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        button=(Button)this.findViewById(R.id.button1);

        button.setOnClickListener(new View.OnClickListener() {

            

            @Override

            public void onClick(View arg0) {

                // TODO Auto-generated method stub

                Intent intent=new Intent(MainActivity.this,Next.class);

                startActivity(intent);

            }

        });

    }





    @Override

    public boolean onCreateOptionsMenu(Menu menu) {

        // Inflate the menu; this adds items to the action bar if it is present.

        getMenuInflater().inflate(R.menu.main, menu);

        return true;

    }

 

通过不同的Intent构造函数来传递启动Activity

Intent intent=new Intent("com.example.android.actitys.nextactivity");

通过这种方式传递构造函数的情况下必须给AndroidMainfest注册的Activity注册Intend-filter中注册action和category

 

<activity android:name=".Next">

            <intent-filter >

                <action android:name="com.example.android.actitys.nextactivity"></action>

                <category android:name="android.intent.category.DEFAULT"></category>

            </intent-filter>

        </activity>

 

Intent intent=new Intent("com.example.android.actitys.nextactivity");

startActivity(intent);

二:Activity之间的传值

主要是通过Intent之间携带值intent.putExtra()方法

             intent.putExtra("age", "12");

                intent.putExtra("name", "billy");

                Bundle bundle=new Bundle();

                bundle.putString("code", "1120");

                intent.putExtra("bundle", bundle);
     setContentView(R.layout.activity_next);

        Intent intent=getIntent();

        String name=intent.getStringExtra("name");

        System.out.println("--name->>"+name);

        String age=intent.getStringExtra("age");

        System.out.println("--age->>"+age);

        Bundle bundle=intent.getBundleExtra("bundle");

        String code=bundle.getString("code");

        System.out.println("--code->>"+code);

        textView=(TextView)this.findViewById(R.id.textView1);

        textView.setText(name);

三:Activity的回传值

想要在通过子窗体回传值,我们需要在父窗体中通过startActivityForResult(intent, requestCode)启动Activity,还要重写一个方法onActivityResult

自定义requestcode和resultcode来定义父子窗体来回传

startActivityForResult(intent, 1000);

 

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

        // TODO Auto-generated method stub

        super.onActivityResult(requestCode, resultCode, data);

        if(requestCode==1000&&resultCode==1001){

            String result=data.getStringExtra("jiegou");

            editText3.setText(result);

            

        }

    }

 

button.setOnClickListener(new View.OnClickListener() {

            

            @Override

            public void onClick(View arg0) {

                // TODO Auto-generated method stub

                String jiegouString=editText.getText().toString().trim();

                Intent intent1=new Intent();

                intent1.putExtra("jiegou", jiegouString);

                setResult(1001, intent1);

                finish();//结束Activity的生命周期

            }

        });

四:Activity保存状态

通过onSaveInstanceState来保存状态

你可能感兴趣的:(Activity)