You could use SharedPreferences...  I have a Widget that displays multiple
"pages" of info to the user.  I use the SharedPreferences class to store
what page I am currently displaying, so that when the Widget is updated, it
knows which page to update.

----------------------------------------------------------------------
There are only 10 types of people in the world...
Those who know binary and those who don't.
----------------------------------------------------------------------


On Wed, Nov 18, 2009 at 11:32 PM, Susan <[email protected]> wrote:

> I have a widget whose appearance will depend on information gained
> from the user in the configuration activity. However, I'm uncertain
> how (and in what section of code) to act on the information gained
> from the user in the config.
>
> Here is the target functionality from the user's perspective:
>
>   When the user creates the widget, the config activity prompts for a
> string (with an EditText). The user types it in and presses the submit
> button. The config activity goes away and the widget appears on the
> homescreen displaying the text the user entered. When the user touches
> the widget, the browser is opened and goes to a particular URL that is
> determined in part by the string the user entered.
>
> Here is what I have implemented so far:
>
> The config activity lets the user enter data and happily displays it
> to me as a Toast message. Then the config goes away as desired and the
> widget appears with the default widget icon. If you touch the widget,
> it goes to a hardcoded URL. (code below)
>
> My question:
>
> How do I "connect" the info from the config activity with the code
> that displays the widget itself? If I put the user's string in a
> putExtra of the intent sent in setResult(), where do I write the code
> to retrieve that extra? It seems like it ought to put it somewhere in
> the AppWidgetProvider code, but where? (Or is there a better way to do
> it?)
>
> Here are the relevant portions of my code:
>
> ------------------------
>   widget.java:
> ------------------------
> public class Widget extends AppWidgetProvider
> {
>    public void onReceive(Context context, Intent intent)
>    {
>        String action = intent.getAction();
>        if (AppWidgetManager.ACTION_APPWIDGET_UPDATE.equals(action))
>        {
>                //Toast.makeText(context, "onReceive()",
> Toast.LENGTH_SHORT).show();
>            RemoteViews views = new RemoteViews(context.getPackageName
> (), R.layout.widget);
>
>            Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse
> ("http://www.cnn.com";));
>            i.addCategory(Intent.CATEGORY_BROWSABLE);
>            i.setComponent(new ComponentName("com.android.browser",
> "com.android.browser.BrowserActivity"));
>            PendingIntent pendingIntent = PendingIntent.getActivity
> (context, 0, i, 0);
>            views.setOnClickPendingIntent(R.id.Widget, pendingIntent);
>
>            AppWidgetManager.getInstance(context).updateAppWidget
> (intent.getIntArrayExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS),
> views);
>        }
>    }
> }
> // end of widget.java
>
> ------------------------------------------------
>   WidgetConfiguration.java
> ------------------------------------------------
> public class WidgetConfiguration extends Activity {
>
>    EditText myEditText;
>
>    @Override
>        public void onCreate(Bundle icicle) {
>        super.onCreate(icicle);
>
>        Intent intent = new Intent();
>        intent = getIntent();
>        Bundle extras = intent.getExtras();
>        int appWidgetId = extras.getInt
> (AppWidgetManager.EXTRA_APPWIDGET_ID);
>        setResult(RESULT_CANCELED);
>
>        // Set the view layout resource to use.
>        setContentView(R.layout.config);
>
>        // Find the EditText
>        myEditText = (EditText)findViewById(R.id.txt_url);
>
>            View.OnClickListener mOnClickListener = new View.OnClickListener
> () {
>                public void onClick(View v) {
>
>                        Intent intent = new Intent();
>                        intent = getIntent();
>                        setResult(RESULT_OK, intent);
>                        Toast.makeText(getBaseContext(),
> myEditText.getText(),
> Toast.LENGTH_SHORT).show();
>                        finish();
>                }
>            };
>
>        // Bind the action for the submit button.
>        findViewById(R.id.btn_urlSubmit).setOnClickListener
> (mOnClickListener);
>
>        // If they gave us an intent without the widget id, just bail.
>        if (appWidgetId == AppWidgetManager.INVALID_APPWIDGET_ID) {
>                finish();
>            }
>    }
> }
> //end of WidgetConfiguration.java
>
> --
> You received this message because you are subscribed to the Google
> Groups "Android Beginners" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]<android-beginners%[email protected]>
> For more options, visit this group at
> http://groups.google.com/group/android-beginners?hl=en

-- 
You received this message because you are subscribed to the Google
Groups "Android Beginners" 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-beginners?hl=en

Reply via email to