实验3:Android组件通信

本文介绍了Android中如何通过显式和隐式启动方式打开新Activity,并在用户输入信息后,将用户名和密码以特定格式返回到主界面。详细讲述了在MainActivity和UserLoginActivity中实现数据传递的编程要点,包括生命周期回调、Intent使用、数据验证以及使用Toast显示返回信息。
摘要由CSDN通过智能技术生成

编程实现:

(1)功能描述:
  • 主界面上有一个“登录”按钮,点击“登录”按钮后打开一个新的Activity
  • 新的Activity上面有输入用户名和密码的控件,在用户关闭这个Activity后,将用户输入的用户名和密码传递到主界面中
(2)编程要点:
  • 主界面的Activity命名为MainActivity;启动新的Activity命名为UserLoginActivity
  • 分别使用显式启动和隐式启动的方式,启动新的Activity
  • 用户名中不能出现“@”等符号,同时长度不超过12个字符;密码使用密码文本显示方式,即显示为“******”方式,同时只能为数字*
  • 返回的用户名和密码要以Toast的方式显示出来
  • MainActivity和UserLoginActivity中各个生命周期的回调函数中要以Log.i方式显示日志信息

代码片:

MainActivity.java

package com.example.experiment3_4_1;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity{
   

    public static final String TAG="MainActivity";

    @Override
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        Log.d(TAG,"onCreate");
        setContentView(R.layout.activity_main);

        Button button01=(Button)findViewById(R.id.button01);
        Button button02=(Button)findViewById(R.id.button02);

        button01.setOnClickListener(new OnClickListener(){
            @Override
            public void onClick(View v){
                //显式启动
                Intent intent01=new Intent(MainActivity.this,UserLoginActivity.class);
                startActivityForResult(intent01,1);
            }
        });

        button02.setOnClickListener(new OnClickListener(){
            @Override
            public void onClick(View v){
                //隐式启动
                Intent intent02=new Intent("com.example.activitytest.ACTION_START");
                startActivityForResult(intent02,1);
            }
        });
    }

    protected void onActivityResult(int requestCode,int resultCode,Intent data){
        switch(requestCode){
        case 1:
            if(resultCode==RESULT_OK){
                String returnedData=data.getStringExtra("data_return");
                Toast.makeText(getApplicationContext(),returnedData.toString(),
          
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值