所以我想说我有这个界面:
public interface IBox
{
public void onEvent(int eventType, View control, Object data);
}
我有一个班级访问它:
public class Rectangle
{
private IBox onEvent;
public Rectangle(Context context, View rowRoot) {
super(context);
onEvent = (Rectangle) context;
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.buttonClick:
// send data : data1 and data2;
onEvent.onEvent(data1,null, data2);
break;
}
我有一个类工具IBox
:
public abstract class BaseActivity implements IBox
{
@Override
public void onEvent(int data1, View data, Object data2)
{
//do something here
}
}
我有类扩展BaseActivity
class:
public class HomeBaseActivity extends BaseActivity
{
// transit Activity here, or send intent....
}
最后我有课程主要扩展HomeBaseActivity
:
public class HomeActivity extends HomeBaseActivity
{
@Override
public void onEvent(int data1, View data, Object data2)
{
switch (data1) {
//reciver data1 from class Rectangle
}
}
我的问题:
1,为什么data1可以在HomeActivity类中重现?
2,任何人都可以解释,帮帮我吗?//一个有垃圾的英语,谢谢
答案 0 :(得分:0)
我理解您想知道为什么onClick()
Rectangle
,我们可以将值传递给onEvent()
中的HomeActivity
,并假设您的活动正在延长{{1} (每个活动都必须扩展Context
)。
让我们看看这里。 Context
正在扩展HomeActivity
,正在实施HomeBaseActivity
。基本上,IBox
可以强制转换为new HomeActivity()
的对象。 [1]
此外,正如我上面的假设,您的活动正在延长IBox
。 [2]
[1] [2] => Context
的实例可以投放到HomeActivity
和IBox
。
让我们将Context
的对象传递给您的HomeActivity
(投放到Rectangle
)并分配给Context
属性(现在转换为onEvent
1}})。
现在,在IBox
,onClick()
只需调用您在onEvent.onEvent(data1,null, data2);
中实施的onEvent()
方法。这就是为什么您可以将HomeActivity
传递给data1
。
了解有关Java here中的接口和继承的更多信息。
P / s:如果您在阅读英语时遇到麻烦,请问,我现在可以使用您的母语私下向您解释。尽量提高你的英语水平,至少让每个人都能理解你。因为我们在这里用英语讨论。