btnOpen.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
Toast.makeText(getBaseContext(),
"Time selected:" +
timePicker.getCurrentHour() +
":" + timePicker.getCurrentMinute(),
Toast.LENGTH_SHORT).show();
}
});
如何将此转换为非匿名内部类?
答案 0 :(得分:1)
你只需要把它变成一个内部类:
btnOpen.setOnClickListener(new InnerOnClickListener());
...
private class InnerOnClickListener implements OnClickListener
{
public void onClick(View v)
{
Toast.makeText(getBaseContext(),
"Time selected:" +
timePicker.getCurrentHour() +
":" + timePicker.getCurrentMinute(),
Toast.LENGTH_SHORT).show();
}
}
注意使用getBaseContext()
实际上会在创建类的实例上调用它。
如果timePicker
是方法中的局部变量(而不是创建类中的实例变量),则需要将其传递给内部类的构造函数。
答案 1 :(得分:0)
您应该声明一个View.OnClickListener接口实现:
btnOpen.setOnClickListener(buttonClickListener);
...
private View.OnClickListener buttonClickListener = new View.OnClickListener() {
@Overide
public void onClick(View v) {
Toast.makeText(getBaseContext(),
"Time selected:" +
timePicker.getCurrentHour() +
":" + timePicker.getCurrentMinute(),
Toast.LENGTH_SHORT).show();
}
}
}