Hi all.
I need some help with the TimePicker Widget. I have a Screen with 2
Tabs. One one tab there is one or more TimePicker Widgets nested in a
LinearLayout nested in a LinearLayout nested in a LinearLayout nested
in a ScrollView :-)
The TimePicker(s) are generated like so:
private View createDateWidget(String displayname, String value) {
Context ctx = mCtx;
String[] datetime = value.split(" ");
Log.d(LOG_TAG,value);
String[] date = datetime[0].split("-");
String[] time = datetime[1].split(":");
LinearLayout layout = createLayout(displayname);
LinearLayout innerlayout = new LinearLayout(ctx);
innerlayout.setLayoutParams(PARAMS_FILL_WRAP);
innerlayout.setOrientation(LinearLayout.HORIZONTAL);
layout.addView(innerlayout);
int day = Integer.parseInt(date[2]);
int month = Integer.parseInt(date[1]);
int year = Integer.parseInt(date[0]);
Button pickDate = new Button(ctx);
pickDate.setLayoutParams(PARAMS_WRAP_WRAP);
pickDate.setText(date[2]+"."+date[1]+"."+date[0]);
final DatePickerDialog dpd = new DatePickerDialog(ctx, new
DatePicker.OnDateSetListener(){
public void dateSet(DatePicker arg0, int arg1, int
arg2, int arg3)
{
Log.d(LOG_TAG, "Date changed on "+arg0+":
"+arg1+"-"+arg2+"-"+arg3);
}
}, year, month,day, Calendar.MONDAY);
pickDate.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
dpd.show();
}
});
TimePicker tp = new TimePicker(ctx, null, null);
tp.setIs24HourView(true);
tp.setCurrentHour(Integer.parseInt(time[0]));
tp.setCurrentMinute(Integer.parseInt(time[1]));
tp.setLayoutParams(PARAMS_WRAP_WRAP);
tp.setOnTimeChangedListener(new
TimePicker.OnTimeChangedListener(){
public void timeChanged(TimePicker arg0, int arg1, int
arg2) {
Log.d(LOG_TAG, "Time changed on "+arg0+":
"+arg1+":"+arg2);
}
});
innerlayout.addView(pickDate);
innerlayout.addView(tp);
return layout;
}
So there is a Button that leads to a DatePickerDialog and a TimePicker
in one line. If i want to change the hour everything works fine. As
soon as I want to change the minutes (either via up-down-buttons or
via number keys) the system throws a StackOverflowError that looks
like this:
ERROR/AndroidRuntime(856): java.lang.StackOverflowError
ERROR/AndroidRuntime(856): at
android.graphics.Canvas.drawText(Canvas.java:889)
ERROR/AndroidRuntime(856): at android.text.Layout.draw(Layout.java:
282)
ERROR/AndroidRuntime(856): at
android.widget.TextView.onDraw(TextView.java:1875)
ERROR/AndroidRuntime(856): at android.view.View.draw(View.java:
4574)
ERROR/AndroidRuntime(856): at
android.view.ViewGroup.drawChild(ViewGroup.java:1088)
ERROR/AndroidRuntime(856): at
android.view.ViewGroup.dispatchDraw(ViewGroup.java:914)
ERROR/AndroidRuntime(856): at android.view.View.draw(View.java:
4550)
ERROR/AndroidRuntime(856): at
android.widget.FrameLayout.draw(FrameLayout.java:208)
ERROR/AndroidRuntime(856): at
android.view.ViewGroup.drawChild(ViewGroup.java:1088)
ERROR/AndroidRuntime(856): at
android.view.ViewGroup.dispatchDraw(ViewGroup.java:914)
ERROR/AndroidRuntime(856): at android.view.View.draw(View.java:
4550)
ERROR/AndroidRuntime(856): at
android.view.ViewGroup.drawChild(ViewGroup.java:1088)
ERROR/AndroidRuntime(856): at
android.view.ViewGroup.dispatchDraw(ViewGroup.java:914)
ERROR/AndroidRuntime(856): at android.view.View.draw(View.java:
4550)
ERROR/AndroidRuntime(856): at
android.view.ViewGroup.drawChild(ViewGroup.java:1088)
ERROR/AndroidRuntime(856): at
android.view.ViewGroup.dispatchDraw(ViewGroup.java:914)
ERROR/AndroidRuntime(856): at android.view.View.draw(View.java:
4550)
ERROR/AndroidRuntime(856): at
android.widget.FrameLayout.draw(FrameLayout.java:208)
ERROR/AndroidRuntime(856): at
android.view.ViewGroup.drawChild(ViewGroup.java:1088)
ERROR/AndroidRuntime(856): at
android.view.ViewGroup.dispatchDraw(ViewGroup.java:914)
ERROR/AndroidRuntime(856): at android.view.View.draw(View.java:
4550)
ERROR/AndroidRuntime(856): at
android.view.ViewGroup.drawChild(ViewGroup.java:1088)
ERROR/AndroidRuntime(856): at
android.view.ViewGroup.dispatchDraw(ViewGroup.java:914)
ERROR/AndroidRuntime(856): at android.view.View.draw(View.java:
4550)
ERROR/AndroidRuntime(856): at
android.view.ViewGroup.drawChild(ViewGroup.java:1088)
ERROR/AndroidRuntime(856): at
android.view.ViewGroup.dispatchDraw(ViewGroup.java:914)
ERROR/AndroidRuntime(856): at android.view.View.draw(View.java:
4550)
ERROR/AndroidRuntime(856): at
android.view.ViewGroup.drawChild(ViewGroup.java:1088)
ERROR/AndroidRuntime(856): at
android.view.ViewGroup.dispatchDraw(ViewGroup.java:914)
ERROR/AndroidRuntime(856): at android.view.View.draw(View.java:
4662)
ERROR/AndroidRuntime(856): at
android.widget.FrameLayout.draw(FrameLayout.java:208)
ERROR/AndroidRuntime(856): at
android.view.ViewGroup.drawChild(ViewGroup.java:1088)
ERROR/AndroidRuntime(856): at
android.view.ViewGroup.dispatchDraw(ViewGroup.java:914)
ERROR/AndroidRuntime(856): at android.view.View.draw(View.java:
4550)
ERROR/AndroidRuntime(856): at
android.widget.FrameLayout.draw(FrameLayout.java:208)
ERROR/AndroidRuntime(856): at
android.view.ViewGroup.drawChild(ViewGroup.java:1088)
ERROR/AndroidRuntime(856): at
android.view.ViewGroup.dispatchDraw(ViewGroup.java:914)
ERROR/AndroidRuntime(856): at android.view.View.draw(View.java:
4550)
ERROR/AndroidRuntime(856): at
android.widget.FrameLayout.draw(FrameLayout.java:208)
ERROR/AndroidRuntime(856): at
android.view.ViewGroup.drawChild(ViewGroup.java:1088)
ERROR/AndroidRuntime(856): at
android.view.ViewGroup.dispatchDraw(ViewGroup.java:914)
ERROR/AndroidRuntime(856): at android.view.View.draw(View.java:
4550)
ERROR/AndroidRuntime(856): at
android.view.ViewGroup.drawChild(ViewGroup.java:1088)
ERROR/AndroidRuntime(856): at
android.view.ViewGroup.dispatchDraw(ViewGroup.java:914)
ERROR/AndroidRuntime(856): at android.view.View.draw(View.java:
4550)
ERROR/AndroidRuntime(856): at
android.widget.FrameLayout.draw(FrameLayout.java:208)
ERROR/AndroidRuntime(856): at
android.view.ViewGroup.drawChild(ViewGroup.java:1088)
ERROR/AndroidRuntime(856): at
android.view.ViewGroup.dispatchDraw(ViewGroup.java:914)
ERROR/AndroidRuntime(856): at android.view.View.draw(View.java:
4550)
ERROR/AndroidRuntime(856): at
android.view.ViewGroup.drawChild(ViewGroup.java:1088)
ERROR/AndroidRuntime(856): at
android.view.ViewGroup.dispatchDraw(ViewGroup.java:914)
ERROR/AndroidRuntime(856): at android.view.View.draw(View.java:
4578)
ERROR/AndroidRuntime(856): at
android.widget.FrameLayout.draw(FrameLayout.java:208)
ERROR/AndroidRuntime(856): at
android.view.ViewRoot.draw(ViewRoot.java:531)
ERROR/AndroidRuntime(856): at
android.view.ViewRoot.performTraversals(ViewRoot.java:429)
ERROR/AndroidRuntime(856): at
android.view.ViewRoot.handleMessage(ViewRoot.java:584)
ERROR/AndroidRuntime(856): at
android.os.Handler.dispatchMessage(Handler.java:80)
ERROR/AndroidRuntime(856): at android.os.Looper.loop(Looper.java:
91)
ERROR/AndroidRuntime(856): at
android.app.ActivityThread.main(ActivityThread.java:3052)
ERROR/AndroidRuntime(856): at
java.lang.reflect.Method.invokeNative(Native Method)
ERROR/AndroidRuntime(856): at
java.lang.reflect.Method.invoke(Method.java:356)
ERROR/AndroidRuntime(856): at android.os.ZygoteInit
$MethodAndArgsCaller.run(ZygoteInit.java:1547)
ERROR/AndroidRuntime(856): at
android.os.ZygoteInit.main(ZygoteInit.java:1445)
ERROR/AndroidRuntime(856): at
android.dalvik.NativeStart.main(Native Method)
do i use too much layout-components? Why does the stack overflow? i
don't use any recursion. is this a bug?
Please halp! thanx
Simon
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[EMAIL PROTECTED]
Announcing the new M5 SDK!
http://android-developers.blogspot.com/2008/02/android-sdk-m5-rc14-now-available.html
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---