Android Studio - 获取活动视图实例的最佳方式

时间:2017-07-13 23:32:59

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

我对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并仍然添加一个演员)。

这真的是最好的方法吗?

5 个答案:

答案 0 :(得分:4)

你可以查看像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 这也是为您定义视图的好方法。

答案 1 :(得分:3)

在Android O中你不需要在findViewById之前写(演员),还有第三部分库叫ButterKnife并应用插件和生成它你可以很容易地处理这个问题。

enter image description here

enter image description here

答案 2 :(得分:3)

你可以使用3种方式:

<强> 1.findViewById

正常但最难的。 您可以使用插件findviewbyme(link)来加速编写代码

2.butterknife Library

使用此lib时,代码变少。您可以查看此link

3.数据绑定库

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

答案 3 :(得分:2)

您可能感兴趣的是AndroidAnnotation和ButterKnife等库。如果您使用Android Annotation,这就是您的代码的样子。

@EActivity(R.layout.activity_main) 
public class MainActivity extends Actiivty {

   @ViewById    
   Button btn1, btn2, btn3;

}

答案 4 :(得分:1)

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

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

如果你还没有为Kotlin做好准备,那么我强烈推荐使用butterknife或任何其他解决方案进行数据绑定,因为这是Google与android的关系。