können also sagen, ich habe diese Schnittstelle:Konstruktor in Interface und abstrakt?
public interface IBox
{
public void onEvent(int eventType, View control, Object data);
}
Und ich habe eine Zugriffsklasse es:
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;
}
und ich habe eine Klasse IBox
implementieren:
public abstract class BaseActivity implements IBox
{
@Override
public void onEvent(int data1, View data, Object data2)
{
//do something here
}
}
und ich habe Klasse erweitert BaseActivity
Klasse:
public class HomeBaseActivity extends BaseActivity
{
// transit Activity here, or send intent....
}
Finale habe ich erweitert Klasse Haupt HomeBaseActivity
:
public class HomeActivity extends HomeBaseActivity
{
@Override
public void onEvent(int data1, View data, Object data2)
{
switch (data1) {
//reciver data1 from class Rectangle
}
}
Meine Frage:
1, warum data1 kann in der Klasse HomeActivity Reciver?
2 kann jeder Körper erklären, mir helfen? Englisch
// a haben Wurf, so dank
Der von Ihnen gepostete Code funktioniert nicht, da die Variable 'onEvent' in der Klasse' Rectangle' niemals initialisiert wird. Es * könnte * Arbeit ist, wo in Ihrem realen Code ein Objekt der Klasse 'HomeActivity' zu Variable' onEvent' in der Klasse 'Rectangle' zugewiesen wird. –
Sorry, aber deine Frage ist unklar; * Warum Data1 kann Empfänger * ... was meinst du damit? – GhostCat
@ Timothy Truckle: sorry, ich initialisiert in contructor, aber nicht notwendig, so dass ich nicht posten, ich bearbeitet –