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来保存状态

posted @ 2015-01-05 14:25  草旅虫  阅读(229)  评论(0编辑  收藏  举报