Aha, now we're on to something.1 - I think it does, but the inflated content is such that you don't see it. Try playing with the inflated layout's background color, and with ViewStub's width and height (maybe set to fixed values for debugging, like both 200dp).
2 - Inflating a ViewStub removes the stub, and replaces it with the inflated content. So the second time through the ViewStub isn't there anymore, and the code crashes since the return value of findViewById(R.id.stub_exposure) is null.
You need to be able to tell apart the first and second time through this code. I see you are saving the inflated layout in "importStub", maybe check it for null, and if it's not null, then the view is already inflated. Or check the return value of findViewById(R.id.stub_exposure).
"@+id/NO_ID" does not have any special meaning, it's just an id, you'd refer to it as "R.id.NO_ID". It certainly doesn't change the behavior of ViewStub.inflate().
-- Kostya 01.08.2010 19:30, Victoria Busse пишет:
Yes, I know that my try catch was wrong, but I corrected it eventually...I think you are right the error is always displayed when I press the button a second time...but that brings me to two new problems or questions:1. Why doesn't the inflated View or layout show up?2. How can I allow the button to be clicked several times and every time calling the ViewStub and its inflated layout. (I already changed inflatedId to NO_ID, but apparently that doesn't do the trick)<ViewStub android:id="@+id/stub_exposure" android:inflatedId="@+id/NO_ID" android:layout="@layout/exposureview" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="#77000000"> </ViewStub>On Sun, Aug 1, 2010 at 4:07 PM, Kostya Vasilyev <[email protected] <mailto:[email protected]>> wrote:Victoria, Has the ViewStub already been inflated by any chance? That is, maybe this is the second time through you're clicking the button? If so, you should know that inflating a ViewStub removes it from the hierarchy and replaces it with the layout you provide with android:layout, giving it the id set by android:inflatedId. Also, your try/catch block is wrong, it should be inside the onClick listener - think about it, the exception happens when you click the button, not when you set the onClick handler. btnExposure.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { *try {* ViewStub stub = (ViewStub) findViewById(R.id.stub_exposure); importStub = stub.inflate(); *}catch (Exception e){ // pass "e" to Log.e to see full stack trace in logcat * * Log.e("ERROR", "Error in Code:" +e.toString(), e);* *} * } }); You also need to modify the layout to be inflated -the way it is now, both views are on top of one another. This is the fix: <TextView android:id="@+id/text_view" <SeekBar android:layout_below="@id/text_view And last but not least, I think this is the actual error: android:text="@+String/hello" There is no "+" notation for strings, and it's "string" not "String" anyway. You can do either android:text="@string/hello" or android:text="Hello" -- Kostya 01.08.2010 16:27, Victoria Busse пишет:Okay I got the "Source" of the error: the try and catch returned that the Null Pointer Exception derives from this part as you already suspected: ViewStub stub = (ViewStub) findViewById(R.id.stub_exposure); importStub = stub.inflate(); But I don't understand why it should be null as I followed the examples I found on the web... e.g. this here: http://developer.android.com/reference/android/view/ViewStub.html And this is the code in the xml, in which I call the ViewStub: <ViewStub android:id="@+id/stub_exposure" android:inflatedId="@+id/stub_exposure_view" android:layout="@layout/exposureview" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="#77000000"> </ViewStub> And here is the according layout xml for the inflated View, the exposureview.xml: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@+String/hello" ></TextView> <SeekBar android:layout_width="wrap_content" android:layout_height="wrap_content" android:thumb="@drawable/seek_thumb" android:progress="50" android:max="100"> </SeekBar> </RelativeLayout> 2010/8/1 Victoria Busse <[email protected] <mailto:[email protected]>> mhmmm, I tried try{ btnExposure.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { ViewStub stub = (ViewStub) findViewById(R.id.stub_exposure); importStub = stub.inflate(); } });}catch (Exception e){ Log.e("ERROR", "Error in Code:" +e.toString()); } but I don't get any output at all... 2010/8/1 Kostya Vasilyev <[email protected] <mailto:[email protected]>> Victoria, Judging by logcat, it looks like "stub" variable, the result of calling findViewById(R.id.stub_exposure) is null. You should check this in the debugger. -- Kostya 01.08.2010 13:46, Victoria Busse пишет:Okay found the problem, I simply forgot to define the button's View btnExposure = (ImageButton) findViewById(R.id.button_exposure); So this - quite simple - problem's solved, but now I got at new NullPointerException at com.mobilevideoeditor.moved.EditorView$1.onClick(EditorView.java:54), which is importStub = ((ViewStub) findViewById(R.id.stub_exposure)).inflate(); And this is what I don't really understand because I am not familiar with ViewStubs yet... I also tried ViewStub stub = (ViewStub) findViewById(R.id.stub_exposure); importStub = stub.inflate(); but again I get the Null Pointer Exception at importStub = stub.inflate(); Could there be s.th <http://s.th> wrong with the exposureview.xml that I use to inflate the stub?? 2010/8/1 Victoria Busse <[email protected] <mailto:[email protected]>> Here is the Logcat: 08-01 08:17:11.984: ERROR/AndroidRuntime(223): Uncaught handler: thread main exiting due to uncaught exception 08-01 08:17:11.994: ERROR/AndroidRuntime(223): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mobilevideoeditor.moved/com.mobilevideoeditor.moved.EditorView}: java.lang.NullPointerException08-01 08:17:11.994: ERROR/AndroidRuntime(223): atandroid.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496)08-01 08:17:11.994: ERROR/AndroidRuntime(223): atandroid.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)08-01 08:17:11.994: ERROR/AndroidRuntime(223): atandroid.app.ActivityThread.access$2200(ActivityThread.java:119)08-01 08:17:11.994: ERROR/AndroidRuntime(223): atandroid.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)08-01 08:17:11.994: ERROR/AndroidRuntime(223): at android.os.Handler.dispatchMessage(Handler.java:99) 08-01 08:17:11.994: ERROR/AndroidRuntime(223): at android.os.Looper.loop(Looper.java:123) 08-01 08:17:11.994: ERROR/AndroidRuntime(223): atandroid.app.ActivityThread.main(ActivityThread.java:4363)08-01 08:17:11.994: ERROR/AndroidRuntime(223): at java.lang.reflect.Method.invokeNative(Native Method) 08-01 08:17:11.994: ERROR/AndroidRuntime(223): at java.lang.reflect.Method.invoke(Method.java:521) 08-01 08:17:11.994: ERROR/AndroidRuntime(223): atcom.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)08-01 08:17:11.994: ERROR/AndroidRuntime(223): atcom.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)08-01 08:17:11.994: ERROR/AndroidRuntime(223): at dalvik.system.NativeStart.main(Native Method)08-01 08:17:11.994: ERROR/AndroidRuntime(223): Caused by: java.lang.NullPointerException08-01 08:17:11.994: ERROR/AndroidRuntime(223): atcom.mobilevideoeditor.moved.EditorView.onCreate(EditorView.java:49)08-01 08:17:11.994: ERROR/AndroidRuntime(223): atandroid.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)08-01 08:17:11.994: ERROR/AndroidRuntime(223): atandroid.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)08-01 08:17:11.994: ERROR/AndroidRuntime(223): ... 11 moreThe Null pointer exception apparently is at com.mobilevideoeditor.moved.EditorView.onCreate(EditorView.java:49), which is the Image Button onClickListener 2010/8/1 Kostya Vasilyev <[email protected] <mailto:[email protected]>> Logcat? -- Kostya Vasilyev -- http://kmansoft.wordpress.com-- You received this message because you are01.08.2010 12:32 пользователь "Victoria Busse" <[email protected] <mailto:[email protected]>> написал: Update, just found a mistake within the ViewStub declaration as I forgot to specify a layout, here is the updated code because the error is still there :(( If someone knows what I am doing wrong please help me because after finding out that I forgot the layout /I thought it would work /but apparently it still doesn't <ViewStub android:id="@+id/stub_exposure" android:inflatedId="@+id/stub_exposure_view" android:layout="@layout/exposureview" android:layout_width="fill_parent" android:layout_height="fill_parent" androi... On Sun, Aug 1, 2010 at 1:11 AM, kivy <[email protected] <mailto:[email protected]>> wrote: > > Hi there, > > I just ...--You received this message because you are subscribed to the GoogleGroups "Android Developers" g...subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] <mailto:[email protected]> To unsubscribe from this group, send email to [email protected] <mailto:android-developers%[email protected]> For more options, visit this group at http://groups.google.com/group/android-developers?hl=en-- You received this message because you are subscribed tothe Google Groups "Android Developers" group. To post to this group, send email to [email protected] <mailto:[email protected]> To unsubscribe from this group, send email to [email protected] <mailto:[email protected]> For more options, visit this group athttp://groups.google.com/group/android-developers?hl=en-- Kostya Vasilev -- WiFi Manager + pretty widget --http://kmansoft.wordpress.com -- You received this message because you are subscribed tothe Google Groups "Android Developers" group. To post to this group, send email to [email protected] <mailto:[email protected]> To unsubscribe from this group, send email to [email protected] <mailto:android-developers%[email protected]> For more options, visit this group at http://groups.google.com/group/android-developers?hl=en-- You received this message because you are subscribed to the GoogleGroups "Android Developers" group. To post to this group, send email to [email protected] <mailto:[email protected]> To unsubscribe from this group, send email to [email protected] <mailto:[email protected]> For more options, visit this group athttp://groups.google.com/group/android-developers?hl=en-- Kostya Vasilev -- WiFi Manager + pretty widget --http://kmansoft.wordpress.com -- You received this message because you are subscribed to the GoogleGroups "Android Developers" group. To post to this group, send email to [email protected] <mailto:[email protected]> To unsubscribe from this group, send email to [email protected] <mailto:android-developers%[email protected]> For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- 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] For more options, visit this group athttp://groups.google.com/group/android-developers?hl=en
-- Kostya Vasilev -- WiFi Manager + pretty widget -- http://kmansoft.wordpress.com -- 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] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

