我对使用android中的代码很好奇,比如
findViewById(R.id.view_id).setVisibility(View.GONE);或者
findViewById(R.id.view_id).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
}
});这是一个使用"findViewById“或在任何视图上添加任何侦听器的好结构,还是应该像这样使用它
Button buttonA=(Button)findViewById(R.id.view_id);
buttonA.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
}
});提前谢谢。
发布于 2017-05-23 16:27:17
在这种情况下,最重要的是一致性。为了使您的代码可读,最好考虑这些事情,并制定适用于整个项目的代码指南。
除此之外,这里是我的一般规则:
如果我只需要一个视图一次,我会内联使用它:
findViewById(R.id.view.id).someMethod();但如果我在一个方法中多次需要它,我会创建一个本地变量:
View view = findViewById(R.id.view_id);
view.someMethod();
view.someOtherMethod();如果我需要在几个方法中使用视图,我会声明一个类变量:
private View view;
...
this.view = findViewById(R.id.view_id);
view.someMethod();
view.someOtherMethod();发布于 2017-05-23 16:24:35
全靠你了
Button buttonA=(Button)findViewById(R.id.view_id);
//can be like this
buttonA.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
}
});
//or like this
buttonA.setOnClickListener(new MyOwnClickListener());
public class MyOwnClickListener implements View.OnClickListener{
@Override
public void onClick(View v) {
}
}如果您想要更清晰的视图初始化,请使用ButterKnife
如果你想要更清晰的视图,可以使用带有Kotlin扩展的kotlin。:D
发布于 2017-05-23 17:18:48
我个人推荐使用一个库,它可以为你做这些事情。例如,您可以使用Butterknife。要使用它,请将以下行添加到项目gradle文件中:
compile 'com.jakewharton:butterknife:8.6.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.6.0'然后,当你在你的活动中,你可以这样定义你的按钮:
@BindView(R.id.your_button_id)
Button myButton;
@Override
public void onCreate(Bundle bundle) {
setContentView(R.layout.your_layout);
Butterknife.Bind(this);
//From here on, your button is available.
}你也可以在Butterknife的帮助下为你的按钮实现onClick-Listeners:
@OnClick(R.id.yourButtonId)
public void yourOnClickMethod(View view) {
// your logic
}我会推荐使用它,因为它避免了很多样板文件,而且Butterk刀有一些整洁的特性。看看这个!
https://stackoverflow.com/questions/44129407
复制相似问题