Полезные примеры Android

Полезные примеры Android
Android — Виджеты

Виджет — это небольшой гаджет или элемент управления вашего приложения Android, размещенный на главном экране. Виджеты могут быть очень удобными, поскольку они позволяют размещать ваши любимые приложения на главном экране для быстрого доступа к ним. Вы, вероятно, видели некоторые общие виджеты, такие как виджет музыки, виджет погоды, виджет часов и т. Д.

Виджеты могут быть многих типов, например информационные виджеты, виджеты коллекций, виджеты управления и гибридные виджеты. Android предоставляет нам полную основу для разработки наших собственных виджетов.

Виджет — XML ​​файл

Чтобы создать виджет приложения, в первую очередь вам понадобится объект AppWidgetProviderInfo, который вы определите в отдельном XML-файле виджета. Для этого щелкните свой проект правой кнопкой мыши и создайте новую папку с именем xml . Теперь щелкните правой кнопкой мыши вновь созданную папку и создайте новый файл XML. Тип ресурса XML-файла должен быть установлен на AppWidgetProvider . В файле xml определите следующие свойства:

<appwidget-provider 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:minWidth="146dp" 
android:updatePeriodMillis="0" 
android:minHeight="146dp" 
android:initialLayout="@layout/activity_main">
</appwidget-provider>

Виджет — файл макета

Теперь вам нужно определить макет вашего виджета в XML-файле по умолчанию. Вы можете перетаскивать компоненты для создания автоматического xml.

Виджет — файл Java

После определения макета создайте новый файл JAVA или используйте существующий, расширьте его с помощью класса AppWidgetProvider и переопределите его метод обновления следующим образом.

В методе обновления вы должны определить объект двух классов: PendingIntent и RemoteViews. Его синтаксис —

PendingIntent pending = PendingIntent.getActivity(context, 0, intent, 0);
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.activity_main);

В конце вы должны вызвать метод обновления updateAppWidget () класса AppWidgetManager. Его синтаксис —

appWidgetManager.updateAppWidget(currentWidgetId,views);		

Часть метода updateAppWidget, в этом классе определены другие методы для управления виджетами. Они следующие —

Sr.No Метод и описание
1

onDeleted(Context context, int[] appWidgetIds)

Это вызывается при удалении экземпляра AppWidgetProvider.

2

onDisabled(Context context)

Это вызывается при удалении последнего экземпляра AppWidgetProvider.

3

onEnabled(Context context)

Это вызывается при создании экземпляра AppWidgetProvider.

4

onReceive(Context context, Intent intent)

Он используется для отправки вызовов различным методам класса.

Виджет — файл манифеста

Вы также должны объявить класс AppWidgetProvider в своем файле манифеста следующим образом:

<receiver android:name="ExampleAppWidgetProvider" >
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/example_appwidget_info" />
</receiver>

Пример

Вот пример, демонстрирующий использование приложения Widget. Он создает базовые приложения-виджеты, которые будут открывать текущий веб-сайт в браузере.

Чтобы поэкспериментировать с этим примером, вам нужно запустить его на реальном устройстве, на котором работает Интернет.

Шаги Описание
1 Вы будете использовать Android studio для создания Android-приложения в пакете com.example.sairamkrishna.myapplication.
2 Измените файл src / MainActivity.java, чтобы добавить код виджета.
3 Измените res / layout / activity_main, чтобы добавить соответствующие XML-компоненты.
4 Создайте новую папку и файл xml в res / xml / mywidget.xml, чтобы добавить соответствующие компоненты XML.
5 Измените AndroidManifest.xml, чтобы добавить необходимые разрешения.
6 Запустите приложение, выберите работающее устройство Android, установите на него приложение и проверьте результаты.

Ниже приводится содержание измененного файла MainActivity.java .

package com.example.sairamkrishna.myapplication;
import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.widget.RemoteViews;
import android.widget.Toast;
public class MainActivity extends AppWidgetProvider{
public void onUpdate(Context context, AppWidgetManager appWidgetManager,int[] appWidgetIds) {
for(int i=0; i<appWidgetIds.length; i++){
int currentWidgetId = appWidgetIds[i];
String url = "http://www.tutorialspoint.com";
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setData(Uri.parse(url));
PendingIntent pending = PendingIntent.getActivity(context, 0,intent, 0);
RemoteViews views = new RemoteViews(context.getPackageName(),R.layout.activity_main);
views.setOnClickPendingIntent(R.id.button, pending);
appWidgetManager.updateAppWidget(currentWidgetId,views);
Toast.makeText(context, "widget added", Toast.LENGTH_SHORT).show();
}
}
}

Ниже приводится измененное содержимое файла xml res / layout / activity_main.xml .

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity"
android:transitionGroup="true">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tutorials point"
android:id="@+id/textView"
android:layout_centerHorizontal="true"
android:textColor="#ff3412ff"
android:textSize="35dp" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Widget"
android:id="@+id/button"
android:layout_centerHorizontal="true"
android:layout_marginTop="61dp"
android:layout_below="@+id/textView" />
</RelativeLayout>

Ниже приводится содержимое файла res / xml / mywidget.xml .

<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:minWidth="146dp" 
android:updatePeriodMillis="0" 
android:minHeight="146dp" 
android:initialLayout="@layout/activity_main">
</appwidget-provider>

Ниже приводится содержимое файла res / values ​​/ string.xml .

<resources>
<string name="app_name">My Application</string>
</resources>

Ниже приводится содержимое файла AndroidManifest.xml .

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.sairamkrishna.myapplication" >
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<receiver android:name=".MainActivity">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE"></action>
</intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/mywidget"></meta-data>
</receiver>
</application>
</manifest>

Попробуем запустить ваше приложение. Я предполагаю, что вы подключили свое настоящее мобильное устройство Android к компьютеру. Чтобы запустить приложение из студии Android, откройте один из файлов активности вашего проекта и щелкните Значок запуска Eclipseзначок « Выполнить» на панели инструментов. Перед запуском вашего приложения студия Android отобразит следующее окно, чтобы выбрать вариант, в котором вы хотите запустить приложение Android.

Учебник по виджетам Anroid

Выберите свое мобильное устройство в качестве опции, а затем проверьте свое мобильное устройство, на котором будет отображаться экран по умолчанию —

Учебник по виджетам Anroid

Перейдите в раздел виджетов и добавьте созданный виджет на рабочий стол или домашний экран. Это выглядело бы примерно так —

Учебник по виджетам Anroid

Теперь просто нажмите на появившуюся кнопку виджета, чтобы запустить браузер. Но перед этим убедитесь, что вы подключены к Интернету. После нажатия кнопки появится следующий экран —

Учебник по виджетам Anroid

Примечание. Просто изменив URL-адрес в java-файле, ваш виджет откроет желаемый веб-сайт в браузере.

Select the fields to be shown. Others will be hidden. Drag and drop to rearrange the order.
  • Image
  • SKU
  • Rating
  • Price
  • Stock
  • Availability
  • Add to cart
  • Description
  • Content
  • Weight
  • Dimensions
  • Additional information
  • Attributes
  • Custom attributes
  • Custom fields
Click outside to hide the compare bar
Compare