Best practices for integrated (context-sensitive) help?

by Mark Murphy » Fri, 23 Apr 2010 05:14:03 GMT

Sponsored Links

This sounds lovely.

Or, just host the help online, linking to it via an ACTION_VIEW Intent
on your URL. I'm not sure if the HTML5 offline stuff works with the
Android browser, but if it does, use that to allow your help to be
usable even when there's no connection. IMHO, this will be the long-term
direction for this sort of thing, as it gives you easy publishing, easy
updates independent of the app itself, yet still isn't completely busted
when the user is offline.

Or, write your help in the form of an EPUB document and make it
available, so those with an EPUB reader (e.g., FBReaderJ) can use it.

Or, write your help in the form of a PDF document and make it available,
so those with a PDF viewer (e.g., Documents To Go) can use it. And see
if they have a referral program for sales, so you can make a bit of
money on people who buy that app to view your help.

Or, don't worry about on-device help due to form-factor issues and just
provide support via your Web site.

Worst-case scenario: create a content provider to serve your help files.

Mark Murphy (a Commons Guy)  | 

Android Consulting: 


Other Threads

1. no need

no need


2. NullPointerException from getReadableDatabase and getWritableDatabase

Hi all,
I'm new to Android, however I am experienced with C# and Java. I have
never had problems opening or communicating with a database until now.
Every time I try to open/create a database using SQLiteOpenHelper's
built-in getReadableDatabase or getWritableDatabase functions my
program crashes with a NullPointerException. Here is the relevant

My SQLiteOpenHelper class:
public class SQLHelper extends SQLiteOpenHelper{
        public SQLHelper(Context context, String db_name)
                super(context, db_name, null, 1);

        public void onUpgrade(SQLiteDatabase db, int oldVersion, int
        public void onCreate(SQLiteDatabase db){}
        public void onOpen(SQLiteDatabase db){}

My  main Activity class:
public class BlackBook extends Activity{
        private SQLHelper dbHelper;
        private SQLiteDatabase db;
        private ListProvider lp;
        private TextView tv;

    /** Called when the activity is first created. */
    public void onCreate(Bundle savedInstanceState) {
        tv = (TextView) findViewById(;

        lp = new ListProvider();

    public class ListProvider extends ContentProvider
                /* All mandatory, unmodified overrides here.
                   Cut out for clarity of this discussion. */

                public String Initiate()
                dbHelper = new SQLHelper(getContext(), "LBB_DB.db");
                db = dbHelper.getReadableDatabase();
                }catch (Exception e)
                {return e.toString();}

                return "Success!";

As you can see, I create a new ContentProvider class in order to
obtain a Context() to pass to the SQLiteOpenHelper. This is what I saw
in the NotePadProvider example, so please let me know if I've done
this wrong and it is causing this error.

This line does not throw an error:
dbHelper = new SQLHelper(getContext(), "LBB_DB.db");
But the very next line throws a NullPointerException error:
db = dbHelper.getReadableDatabase();

I have tried both getReadable and getWritable with no difference. I've
been pulling my hair out over this one for well over five hours now, I
would greatly appreciate some help pinpointing the source of the error
if possible.

Thanks for reading.


3. Unable to Connect to FTP server

4. The FTP uploading program does not work on Android Emulator

5. costum listview (exchanging scrollview?)

6. What's the best way to fill a TableLayout with objects defined by a template?

7. How to install and run applications from within another application?