我很想知道在Android中使用代码
findViewById(R.id.view_id).setVisibility(View.GONE);
OR
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) {
}
});
提前致谢。
答案 0 :(得分:3)
在这种情况下最重要的是一致性。为了使您的代码可读,最好考虑这些事情并制定适用于整个项目的代码指南。
除此之外,这是我的一般规则:
如果我只需要一次视图,我会将其用于内联:
findViewById(R.id.view.id).someMethod();
但如果我在一个方法中需要多次,我会创建一个本地var:
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();
答案 1 :(得分:1)
它取决于你
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
答案 2 :(得分:1)
我个人会建议使用图书馆,为你做这些事情。 例如,您可以使用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-Listener:
@OnClick(R.id.yourButtonId)
public void yourOnClickMethod(View view) {
// your logic
}
我建议使用这个,因为它避免了很多样板和Butterknife有一些简洁的功能。看看吧!
答案 3 :(得分:0)
答案 4 :(得分:0)
对我而言,在onCreate中绑定所有视图总是比较容易,所以我将它们放在一个地方。
另一件有用的东西是奶油刀库。 http://jakewharton.github.io/butterknife/