1) Создаем новый класс Config с суперклассом Activity
2) Добавляем в манифест в контейнер application
3) В widget.xml атрибуту Configure ставим значение com.example.mywidget.Config
4) Создаем новый XML файл config.xml с типом ресурса Layout и корневым элементом RelativeLayout
5) Добавим в config.xml кнопку и поле для ввода текста с значением по умолчанию http://google.com. Это будет окно ввода настроек.
6) В Config.java вводим код:
2) Добавляем в манифест в контейнер application
<activity android:name=".Config"> <intent-filter > <action android:name="android.appwidget.action.APPWIDGET_CONFIGURE"/> </intent-filter> </activity>
3) В widget.xml атрибуту Configure ставим значение com.example.mywidget.Config
4) Создаем новый XML файл config.xml с типом ресурса Layout и корневым элементом RelativeLayout
5) Добавим в config.xml кнопку и поле для ввода текста с значением по умолчанию http://google.com. Это будет окно ввода настроек.
6) В Config.java вводим код:
package com.example.mywidget; import android.app.Activity; import android.app.PendingIntent; import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetProvider; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.RemoteViews; import android.widget.RemoteViews.RemoteView; public class Config extends Activity { private Config context; private int widgetId; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.config); // для того чтобы обрабатывать исключения когда пользователь сбрасывает настройки setResult(RESULT_CANCELED); context = this; Bundle extras = getIntent().getExtras(); if (extras != null) { widgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID); final AppWidgetManager widgetManager = AppWidgetManager.getInstance(context); final RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.main); final EditText edit1 = (EditText) findViewById(R.id.editText1); Button but1 = (Button) findViewById(R.id.button1); but1.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(edit1.getText().toString())); PendingIntent pending = PendingIntent.getActivity(context, 0, intent, 0); views.setOnClickPendingIntent(R.id.imageButton1, pending); widgetManager.updateAppWidget(widgetId, views); Intent resultValue = new Intent(); resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, widgetId); setResult(RESULT_OK, resultValue); finish(); } }); } } }