【问题标题】:Android Studio - Best way to get view instances of an activityAndroid Studio - 获取活动视图实例的最佳方式
【发布时间】:2017-07-13 23:32:58
【问题描述】:

我是 Android Studio 的新手,我想快速访问按钮、图像视图、文本视图等视图。

到目前为止,我知道findViewById 的方法,这就是我正在做的创建轻松访问视图的方法:

Button btn1, btn2, btn3;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    this.btn1=(Button)findViewById(R.id.btn1);
    this.btn2=(Button)findViewById(R.id.btn2);
    this.btn3=(Button)findViewById(R.id.btn3);
}

//then I simply use my defined vars

虽然它可以工作,但编写所有这些代码仍然很无聊(或者每次都必须使用findViewById,而且获取 id 的方式很繁琐,并且仍然添加演员表)。

这真的是最好的方法吗?

【问题讨论】:

    标签: java android android-layout android-studio android-view


    【解决方案1】:

    您可以查看像 Butterknife http://jakewharton.github.io/butterknife/ 这样的库。

    它可以防止您编写样板代码 - 只需注入视图。 您可以将其与此 Android Studio 插件结合使用: https://plugins.jetbrains.com/plugin/7369-android-butterknife-zelezny

    通过这种设置,注入视图非常简单快捷。

    另外,您可以查看诸如“数据绑定”之类的主题https://developer.android.com/topic/libraries/data-binding/index.html 这也是为您定义视图的好方法。

    【讨论】:

      【解决方案2】:

      你可以使用 3 种方式:

      1.findViewById

      普通方式,但最难。 您可以使用插件 findviewbyme (link) 来加快编写代码的速度

      2.butterknife 库

      当使用这个库时,代码变少了。你可以检查这个link

      3.数据绑定库

      是最好的方法,在初始绑定之后,在布局中添加新视图时,无需任何额外代码即可访问它。你可以检查这个(link)

      【讨论】:

        【解决方案3】:

        在android O中你不需要在findViewById之前写(Cast),还有一个第三方库叫做ButterKnife应用插件并生成它你可以处理这个问题很简单。

        【讨论】:

        • “在 android O 中你不需要写 findViewById”——是的,你需要。改变的是您不需要转换结果。
        【解决方案4】:

        您可能对 AndroidAnnotation 和 ButterKnife 等库感兴趣。如果您使用 Android Annotation,您的代码会呈现这样的效果。

        @EActivity(R.layout.activity_main) 
        public class MainActivity extends Actiivty {
        
           @ViewById    
           Button btn1, btn2, btn3;
        
        }
        

        【讨论】:

          【解决方案5】:

          由于没有人在他们的任何回答中提到这一点,Kotlin 现在正式支持 android 开发,并且有 android kotlin 扩展 (https://kotlinlang.org/docs/tutorials/android-plugin.html) 允许您直接访问视图而无需 findViewById()。

          如果您决定使用它,请注意,如果您在片段中使用它,则必须在将视图传递给 onCreateView() 后使用它,否则它将找不到视图。

          如果您还没有为 Kotlin 做好准备,那么我强烈建议您通过 Butterknife 或任何其他解决方案进行数据绑定,因为这是 Google 使用 android 的方向。

          【讨论】:

            猜你喜欢
            • 2011-12-26
            • 1970-01-01
            • 1970-01-01
            • 2014-10-24
            • 1970-01-01
            • 1970-01-01
            • 2012-04-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多