【发布时间】:2016-03-05 16:56:48
【问题描述】:
我正在通过一些教程学习 Android,当谈到使用 OnClickListeners 时,我注意到其中很多都使用匿名内部类,如下所示:
public class MainActivity extends AppCompatActivity {
private EditText mNameField;
private Button mStartButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mNameField = (EditText) findViewById(R.id.nameEditText);
mStartButton = (Button) findViewById(R.id.startButton);
mStartButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String name = mNameField.getText().toString();
Toast.makeText(MainActivity.this, name, Toast.LENGTH_LONG).show();
}
});
}
}
在类中设置类被认为是一种好的做法吗?或者以某种方式在某个地方定义这个类然后引用它是否被认为更好?我该怎么做?
【问题讨论】:
-
@AndrewRegan 我知道它们是如何使用的——但我想知道它们是否被认为是好的做法。
-
android 文档并没有过多地暗示什么方法是“最好的”,但是如果你在布局中有几个按钮,你就不会为每个按钮创建匿名类。这变得很麻烦。而是考虑将 OnClickListener 实现为 Activity/Fragment 的一部分。
-
@Susheel 我该怎么做?我在上面发布了更多代码。如果我不想将监听器实现为内部类,那就是
标签: java android class android-studio standards