Ich habe die Klasse RelativeLayout abgeleitet und die onMeasure Methode überschreiben.
Jetzt bekomme ich eine ClassCastException aus der Oberklasse (RelativeLayout) wenn ich in meiner Überschreibenen onMeasure die von der Oberklasse aufrufe.
edit ist dabei eine instanz von EditText.
So weit so gut bis hierhin ist es noch einfach!
Im Konstruktor wo ich edit initialisiere hänge ich einen OnTouchListener an. In diesem Listener generiere ich eine RadioGroup und füge dort im moment zwei RadioButton elemente an und gebe denen ein margin.
Das mache ich mit dieser Methode:
Wenn ich das ganze aufrufe klappt es (scheinbar) problemlos:
Allerdings knallt es später dann bei onMeasure wenn super.onMeasure aufgerufen wird.
Wer kann mir helfen?
Ich suche schon seit Stunden nach einer Lösung.
Halb Offtopic:
Weiß jemand wie ich an den source code von android dran kommt, so das ich mir die Exception im Framework angucken kann? (Ich weiß das soll irgendwie mit git gehen, wie ist mir allerdings ein Rätzel)
Jetzt bekomme ich eine ClassCastException aus der Oberklasse (RelativeLayout) wenn ich in meiner Überschreibenen onMeasure die von der Oberklasse aufrufe.
Java:
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
if(edit != null)
edit.setWidth(MeasureSpec.getSize(widthMeasureSpec));
}
edit ist dabei eine instanz von EditText.
So weit so gut bis hierhin ist es noch einfach!
Im Konstruktor wo ich edit initialisiere hänge ich einen OnTouchListener an. In diesem Listener generiere ich eine RadioGroup und füge dort im moment zwei RadioButton elemente an und gebe denen ein margin.
Das mache ich mit dieser Methode:
Java:
private void setMarginTop(View view, int top) {
MarginLayoutParams margin = new MarginLayoutParams(view.getLayoutParams());
margin.setMargins(0, top, 0, 0);
LayoutParams layout = new RelativeLayout.LayoutParams(margin);
view.setLayoutParams(layout);
}
Wenn ich das ganze aufrufe klappt es (scheinbar) problemlos:
Java:
String[] opt = {"foo", "bar"};
RadioGroup rg = new RadioGroup(context);
addView(rg);
for(int i = 0; i < opt.length; i++) {
RadioButton r = new RadioButton(context);
rg.addView(r);
r.setText(opt[i]);
setMarginTop(r, 5);
}
Allerdings knallt es später dann bei onMeasure wenn super.onMeasure aufgerufen wird.
Wer kann mir helfen?
Ich suche schon seit Stunden nach einer Lösung.
Halb Offtopic:
Weiß jemand wie ich an den source code von android dran kommt, so das ich mir die Exception im Framework angucken kann? (Ich weiß das soll irgendwie mit git gehen, wie ist mir allerdings ein Rätzel)