[android-developers] Re: startActivity Problem
Thanks Yusuf, that worked. Still curious though, when did the startActivity behavior change? It worked in an older project that was also 1.5. Michael On Jul 30, 11:52 am, Yusuf T. Mobile yusuf.s...@t-mobile.com wrote: Try using startService() to start your service instead of startActivity (). Yusuf Saib Android ·T· · ·Mobile· stick together The views, opinions and statements in this email are those of the author solely in their individual capacity, and do not necessarily represent those of T-Mobile USA, Inc. On Jul 30, 8:06 am, kolby kolbys...@gmail.com wrote: Hi all, I'm trying to call a service directly, and I'm getting an ActivityNotFoundException thrown. My main class looks like this: --- @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); PackageManager pm = getPackageManager(); try { Log.i(TAG,retrieving services:); PackageInfo pinfo = pm.getPackageInfo(test.another, PackageManager.GET_ACTIVITIES | PackageManager.GET_SERVICES); for (ServiceInfo serv : pinfo.services) { Log.i(TAG,declared service: +serv.name); Log.i(TAG, package name: +serv.packageName); Log.i(TAG, enabled: +serv.enabled); Log.i(TAG, exported: +serv.exported); } } catch (NameNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } Intent i = new Intent(); i.setClassName(test.another, test.another.MyService); startActivity(i); setContentView(R.layout.main); } --- -- My service is empty, minus some log messages: --- - public void onCreate() { Log.i(T,created); } public void onStart(Intent i, int code) { Log.i(T,started); } @Override public IBinder onBind(Intent intent) { // TODO Auto-generated method stub return null; } --- - And the service is declared in the manifest file: --- ?xml version=1.0 encoding=utf-8? manifest xmlns:android=http://schemas.android.com/apk/res/android; package=test.another android:versionCode=1 android:versionName=1.0 application android:icon=@drawable/icon android:label=@string/ app_name activity android:name=.Main android:label=@string/app_name intent-filter action android:name=android.intent.action.MAIN / category android:name=android.intent.category.LAUNCHER / /intent-filter /activity service android:name=MyService/service /application uses-sdk android:minSdkVersion=3 / /manifest --- - When I run it in either the emulator or on my phone, I get this log: --- - 07-30 10:56:52.676: INFO/main(1686): retrieving services: 07-30 10:56:52.686: INFO/main(1686): declared service: test.another.MyService 07-30 10:56:52.686: INFO/main(1686): package name: test.another 07-30 10:56:52.696: INFO/main(1686): enabled: true 07-30 10:56:52.696: INFO/main(1686): exported: false 07-30 10:56:52.696: INFO/ActivityManager(56): Starting activity: Intent { comp={test.another/test.another.MyService} } 07-30 10:56:52.716: DEBUG/AndroidRuntime(1686): Shutting down VM 07-30 10:56:52.716: WARN/dalvikvm(1686): threadid=3: thread exiting with uncaught exception (group=0x4000fe70) 07-30 10:56:52.716: ERROR/AndroidRuntime(1686): Uncaught handler: thread main exiting due to uncaught exception 07-30 10:56:52.746: DEBUG/dalvikvm(1622): GC freed 5960 objects / 376680 bytes in 423ms 07-30 10:56:52.746: ERROR/AndroidRuntime(1686): java.lang.RuntimeException: Unable to start activity ComponentInfo {test.another/test.another.Main}: android.content.ActivityNotFoundException: Unable to find explicit activity class {test.another/test.another.MyService}; have you declared this activity in your AndroidManifest.xml? 07-30 10:56:52.746: ERROR/AndroidRuntime(1686): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java: 2268) 07-30
[android-developers] Re: did someone implement a ScrollView with horizontal scroll support?
Here is one Google made earlier, except they forgot to flip x/y. Took about an hour to convert. :) Oh, and it might not work with the 1.1 SDK, because of the attribute set changes. It works fine with the 1.0 SDK. Michael /* * Copyright (C) 2006 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the License); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an AS IS BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package your.package.here; import java.lang.reflect.Field; import java.util.List; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Rect; import android.util.AttributeSet; import android.util.Log; import android.view.FocusFinder; import android.view.KeyEvent; import android.view.MotionEvent; import android.view.VelocityTracker; import android.view.View; import android.view.ViewConfiguration; import android.view.ViewGroup; import android.view.ViewParent; import android.view.animation.AnimationUtils; import android.widget.FrameLayout; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.Scroller; import android.widget.TextView; /** * Layout container for a view hierarchy that can be scrolled by the user, * allowing it to be larger than the physical display. A ScrollView is a * {...@link FrameLayout}, meaning you should place one child in it containing the * entire contents to scroll; this child may itself be a layout manager with a * complex hierarchy of objects. A child that is often used is a * {...@link LinearLayout} in a vertical orientation, presenting a vertical array * of top-level items that the user can scroll through. * * p * You should never use a ScrollView with a {...@link ListView}, since ListView * takes care of its own scrolling. Most importantly, doing this defeats all of * the important optimizations in ListView for dealing with large lists, since * it effectively forces the ListView to display its entire list of items to * fill up the infinite container supplied by ScrollView. * * p * The {...@link TextView} class also takes care of its own scrolling, so does not * require a ScrollView, but using the two together is possible to achieve the * effect of a text view within a larger container. * * p * ScrollView only supports vertical scrolling. */ public class HorizontalScrollView extends FrameLayout { static final String TAG = HScroll; private static final int ANIMATED_SCROLL_GAP = 250; /** * When arrow scrolling, ListView will never scroll more than this factor * times the height of the list. */ private static final float MAX_SCROLL_FACTOR = 0.5f; private long mLastScroll; private final Rect mTempRect = new Rect(); private Scroller mScroller; /** * Flag to indicate that we are moving focus ourselves. This is so the code * that watches for focus changes initiated outside this ScrollView knows that * it does not have to do anything. */ private boolean mScrollViewMovedFocus; /** * Position of the last motion event. */ private float mLastMotionX; /** * True when the layout has changed but the traversal has not come through * yet. Ideally the view hierarchy would keep track of this for us. */ private boolean mIsLayoutDirty = true; /** * The child to give focus to in the event that a child has requested focus * while the layout is dirty. This prevents the scroll from being wrong if the * child has not been laid out before requesting focus. */ private View mChildToScrollTo = null; /** * True if the user is currently dragging this ScrollView around. This is not * the same as 'is being flinged', which can be checked by * mScroller.isFinished() (flinging begins when the user lifts his finger). */ private boolean mIsBeingDragged = false; /** * Determines speed during touch scrolling */ private VelocityTracker mVelocityTracker; /** * When set to true, the scroll view measure its child to make it fill the * currently visible area. */ private boolean mFillViewport; /** * Whether arrow scrolling is animated. */ private boolean mSmoothScrollingEnabled = true; public HorizontalScrollView(Context context) {
[android-developers] Re: did someone implement a ScrollView with horizontal scroll support?
The code in setScrollXY is not called anywhere in the class, and was old test code to get around the fact that some fields/methods are not available in sub-classes in different packages. It can be and should have been removed, but then again, who has time for that? Michael On Mar 12, 1:44 pm, Romain Guy romain...@google.com wrote: Do NOT use this implementation. The setScrollXY() method changes field by reflection. Not only is it likely to break it's also VERY VERY inefficient. Especially given the lookup is done *every* single time. View already has methods to change the scroll X/Y values. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~--~~~~--~~--~--~---