1、从一个Activity跳转到另一个Activity,使用Intent.
在按钮的onClick中如下写法:
public void Login(View view) { Intent intent = new Intent(); //设置从Relativeactivity跳转到LoginActivity intent.setClass(Relativeactivity.this, LoginActivity.class); //用putExtra来从一个Activity向另一个来传递数据 intent.putExtra("name", "独此一家"); intent.putExtra("password", "1234"); startActivity(intent); }
在新打开的Activity中进行接收
private EditText loginNameEditText = null; private EditText loginPasswordEditText = null; protected void onCreate(Bundle savedInstanceBundle) { super.onCreate(savedInstanceBundle); setContentView(layout.login); //requestWindowFeature(Window.FEATURE_NO_TITLE); loginNameEditText = (EditText)findViewById(R.id.LoginName); loginPasswordEditText = (EditText)findViewById(R.id.LoginPassword); //接到传递过来的Intent Intent intent = getIntent(); //接收Intent中的数据 String nameString = intent.getStringExtra("name"); String passwordString = intent.getStringExtra("password"); loginNameEditText.setText(nameString); loginPasswordEditText.setText(passwordString); }
使用隐式 Intent:
隐式Intent是不指定具体启用哪个Activity,而是设定Intent的 Action和Category属性,有系统分析去启动哪个Activity。
在AndroidManifest.xml注册Activity的时候设置这两个属性
<activity android:name=".LoginActivity" android:label="Login" > <intent-filter> <action android:name="com.example.one.loginactivity" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity>
Intent intent= new Intent("com.example.one.loginactivity");
startActivity(intent) 就可以启动该Activity。
可以是用 intent.addCategory()来增加intent的Category选项,可以加多个category来唯一确定
2、判断文本框是否为空,并弹出提示 ,参考链接:http://zhouhaitao.iteye.com/blog/1831523
public void Login(View view) { String loginNameString = loginNameEditText.getText().toString(); String loginPasswordString = loginPasswordEditText.getText().toString(); Log.d("LoginActivity", loginNameString); //判断是否为空用equals if(loginNameString.equals("")) { //这个提示是显示一下自动就消失了 Toast.makeText(LoginActivity.this, "请输入用户名", Toast.LENGTH_SHORT).show(); return; } else { Toast.makeText(LoginActivity.this, "已经有了", Toast.LENGTH_SHORT).show(); } if(loginPasswordString.equals("")) { //这个是alert提示框,可以设置 标题、内容和按钮,不要忘了最后的show new AlertDialog.Builder(view.getContext()).setTitle("提示").setMessage("密码不能为空!") .setPositiveButton("确定", null).show(); } }
3、返回数据给上个Activity
有A、B两个Activity,从A启动打开了B。则A是B的上一个activity . 当在B中点击按钮调用finish()销毁B活动,或者点击手机返回键时,则手机返回上个Activity,即显示A。
①、点击按钮调用finish()这种的写法:
在A中打开B活动时,调用 startActivityForResult(intent, requestCode)
在B中按钮事件中调用setResult(RESULT_OK,intent);finish();来回传数据。
在A活动中重写onActivityResult(int requestCode,int resultCode,Intent data)来接收B中回传的数据。
②、用户点击返回按钮销毁了B活动,这是怎么把数据返回给A。
在上边说的三个步骤中,没有了第二步的点击按钮调用的事件。而是需要在B活动中重写onBackPressed()方法。
这里具体每个方法的参数和用法,可以百度搜索或者查帮助文档