java kotlin的区别

事件点击

首先都要进行button的注册
重写OnClick方法(这个是主要的),不过这里要传入一个(new View.OnClickListener()
再创建Intent实例进行跳转

Button btn = findViewById(R.id.name);
 btn1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent3 = new Intent();
                intent3.setClass(ChengxuActivity.this,MainActivity.class);
                startActivity(intent3);
            }
        });

首先都要进行button的注册
直接创建Intent实例进行跳转。
不过要注意的是在使用Intent是kotlin是
val intent1 = Intent(this,KexueActivity::class.java)

val btn = findViewById(R.id.name)
val intent1 = Intent(this,KexueActivity::class.java)
            startActivity(intent1)

隐式intent选择跳转

java中使用隐式intent跳转实现选择使用,只需要在想跳转到的几个Activity中加上想要实现的ACTION实例:
逻辑:

  Button btn1 = findViewById(R.id.Shift);
         btn1.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
                 Intent intent = new Intent();
                 intent.setAction("com.example.ClassTest.ACTION_START");
                 //自定义设置action的名字一般为防止冲突都是包名加action名字。
                startActivity(intent);
             }
         });

AndroidMainifest中代码

 <activity android:name=".Second">
    <intent-filter>
        <action android:name="com.example.ClassTest.ACTION_START"/>
        //匹配在逻辑设计中的action名字,这是第一步过滤。也是第一次匹配
        <category android:name="android.intent.category.DEFAULT"/>
        //这是匹配第二个元素,Category和action一样不过这里可以用DEFAULT来标识、
    </intent-filter>
        </activity>
        <activity android:name=".Another" >
            <intent-filter>
                <action android:name="com.example.ClassTest.ACTION_START"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
        </activity>

利用Intent传值,并显示在TextView上

Java
首先将数值传到intent中,使用putExtra方法。同时传入的第一个参数是你要传值的名字,用于后来接收。第二个参数是你要传入的值。
在这里插入图片描述
要注意的是,你要传的值的类型和你要选择的方法必须一致。
使用putExtra方法以后,可以启动Intent。随着跳转到另一个界面,intent也传到另一个界面,值也到达另一个界面,这时候就需要去接收intent。在第二个界面中使用getIntent方法。将这个intent接受到你在这个界面中所定义个intent1中,并使用intent1.getExtra方法接受你从上一个activity中发出的值。
在这里插入图片描述
同样的这里也需要去与你发出的值选择对应的方法。
在获得了从上一个activity中传过来的值后,如何显示在TextView中?
利用的是一个setText函数,将你的textView注册后,利用函数展现。

tv.setText(string);//将数据展示到TextView中

这里的string是我的实验中的值,这里填的就是你接受的那个值。
同样的,你传什么类型的值,你就要用什么类型的值去接受它,例如String类型

String string = in.getStringExtra("name");

完整代码:
第一个activity

 Button btn1 = findViewById(R.id.shift);
         btn1.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
                 Intent intent = new Intent();
                 EditText et = findViewById(R.id.mingzi);
                 EditText et1 = findViewById(R.id.haoma);
                 String str1 = et1.getText().toString();//获取editText中的信息
                 String str = et.getText().toString();
                 intent.putExtra("name",str);
                 intent.putExtra("number",str1);



                 intent.setAction("com.example.ClassTest3.ACTION_START");//自定义设置action的
//                 intent.putExtra(Intent.EXTRA_TITLE,"选择你要用的app");
//                 intent.putExtra(Intent.EXTRA_INTENT, intent);
                 startActivity(intent);

这里是用隐式Intent启动activity,不过显式Intent一样的方法
需要接受的activity

  Button btn = findViewById(R.id.btn3);
        Intent in = getIntent();//获取从intent传来的数据
        TextView tv = findViewById(R.id.xiangximingzi);
        TextView tv1 = findViewById(R.id.c);
        String string = in.getStringExtra("name");
        String string1 = in.getStringExtra("number");

        //try {
        if (in != null){


            tv.setText(string);//将数据展示到TextView中

            tv1.setText(string1);//将数据展示到TextView中

        }else {
            //catch (NullPointerException e ) {
            Toast.makeText(this, "请输入", Toast.LENGTH_LONG).show();
            //}
        }

我这里加了一个判空设置,并如果为空就提示需要输入

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值