You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android开发:如何在Java中使用Kotlin Android Extensions跳过findViewById?

在Java代码中使用Kotlin Android Extensions(省略findViewById)

嘿,我来给你捋清楚怎么用Kotlin Android Extensions在Java代码里省掉烦人的findViewById操作,步骤简单明了,跟着走就行:

第一步:配置项目插件

首先得在模块级的build.gradle(一般是app/build.gradle)里启用Kotlin Android Extensions插件:

  • 旧版Gradle写法,在文件顶部添加:
apply plugin: 'kotlin-android-extensions'
  • 新版Plugins块写法,在plugins代码块里加入:
plugins {
    id 'com.android.application'
    id 'kotlin-android'
    id 'kotlin-android-extensions' // 添加这一行
}

配置完记得同步Gradle项目,让插件生效。

第二步:在Activity中直接使用(无需findViewById)

  1. 先确保布局文件里要操作的View都设置了android:id属性,比如:
<!-- activity_main.xml -->
<TextView
    android:id="@+id/tv_greeting"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
  1. 回到Java的Activity代码里,你完全不需要写findViewById(R.id.tv_greeting)了!插件会自动生成对应的静态方法,你可以通过静态导入直接调用:
import static com.yourpackage.MainActivityKt.getTv_greeting; // 替换成你的实际包名和Activity名
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        // 直接获取View,一步到位
        TextView greetingTv = getTv_greeting(this);
        greetingTv.setText("Hello from Kotlin Android Extensions!");
    }
}

要是不想用静态导入,也可以直接通过类名调用:MainActivityKt.getTv_greeting(this)。

小提醒:目前Google官方已经推荐用ViewBinding或者DataBinding替代Kotlin Android Extensions了,因为这个插件已被标记为废弃状态。不过如果你的项目还在维护旧代码,上面的方法完全可行。

内容的提问来源于stack exchange,提问作者Rizwan Waqar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:58:39