Android入门——页面跳转

阅读更多

    Android中页面跳转分两种情况,一是跳转不带值,还有一个是跳转带值。

    先说简单情况,不带值跳转。

    假设创建了应用,该应用包含两个类,FirstActivity和SecondActivity。要实现从FirstActivity中启动SecondActivity只需下面两行代码:

Intent intent = new Intent(FirstActivity.this, SecondActivity.class);

FirstActivity.this. startActivity(intent);

    第一行代码创建一个Intent对象,将当前FirstActivity实例的引用和SecondActivity的类实例传递给Intent(Context packageContext,Class cls),构造函数,初始化该对象。

    第二行代码将这个Intent对象传递给startActivity(Intent)函数,该函数负责加载SecondActivity.class描述的Activity。

    当然要页面跳转,SecondActivity.class中必须有onCreate函数,其中  setContentView(R.layout.activity_second); 必不可少,它的作用是将创建的activity_second.xml弹出。

    这里有个问题需要注意,Activity必须在应用的AndroidManifest.xml文件中声明,否则无法启动。声明语言如下:




    

    
        
            
                

                
            
        
        
            
                
                
            
        
    

 SecondActivity与FirstActivity地位一样。从以上代码中可以看出,FirstActivity与SecondActivity分别通过标签,与一个Intent过滤器相关联。其中省略号为包名。

    下面介绍跳转时传值的情况。

    首先得在FirstActivity.class中得到要传递的值,例如我得到如下的值:

          EditText account = (EditText) this.findViewById(R.id.accountText);
    我们之前创建了Intent对象

          intent.putExtra("accountText",account.getText().toString());

          这里第一个值是传值是所使用的名称,第二个是要传值的变量名。

          我们还可以使用Bundle封装数据

          Bundle bundle = new Bundle();

          bundle.putString("accountText",account.getText().toString());

          intent.putExtras(bundle);

    注意以上传值的语句必须在startActivity(intent);之前。

    以下是SecondActivity.class的代码

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

public class SecondActivity extends Activity{
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		//setContentView(new HandWritingImageView(this));
		setContentView(R.layout.activity_second); 
		this.showResult();
	}
	
	private void showResult(){
		TextView userNameView = (TextView) this.findViewById(R.id.userNameView);
		//获取数据
		Intent it = this.getIntent();
		Bundle bundle = it.getExtras();
		String s = bundle.getString("accountText");
		userNameView.setText(s);
	}

}

     我用Bundle传值的。userNameView是传值的目标。

你可能感兴趣的:(Android,页面跳转,intent)