PDA

View Full Version : نمایش نتایج کوئری در ویجت



akbarg64
یک شنبه 04 بهمن 1394, 15:07 عصر
سلام.من برای نرم افزاری که درست کردم.قصد دارم یه ویجت درست کنم.که کاربر بدون باز کردن نرم افزار بتونه اون کوئری که ساختم رو نتیجه اش ببینه.مثلا تمام افرادی که تاریخ تولدشون اون روز هست رو میخوام توی ویجت نشون بدم.ممنون میشم راهنمایی کنید

msroid
یک شنبه 04 بهمن 1394, 19:22 عصر
سلام
اول باید یک فایل xml با عناصری که لازم داری ایجاد کنی مثلا:

my_widget.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center">


<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Click Me...!!"
android:id="@+id/btnWidget"/>
</LinearLayout>

بعدش باید یه فایل xml از نوع AppWidgetProvider توی پوشه ی xml که در زیرشاخه res/xml هست قرار بدی. اگر پوشه ی xml وجود نداره اول اونو ایجاد کن:

my_widget_provider.xml
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:initialLayout="@layout/my_widget"
android:minHeight="180dp"
android:minWidth="110dp"
android:previewImage="ye ax baraye namayesh widget"
android:resizeMode="horizontal|vertical"
android:updatePeriodMillis="1800000">
</appwidget-provider>

بعد از انجام این مراحل نیاز به یک کلاس هست تا از این چیزایی که ساختیم بتونیم استفاده کنیم:

MyWidget.java


public class MyWidget extends AppWidgetProvider{
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds){

for(int i = 0; i < appWidgetIds.length; i++){
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.my_widget);
// با کلیک روی دکمه میخوایم که برنامه اجرا بشه یا یه اکتیویتی خاص یا هر کار دیگه ای که بخوای
Intent openApp = new Intent(context, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, openApp, 0);
views.setOnClickPendingIntent(R.id.btnWidget, pendingIntent);

appWidgetManager.updateAppWidget(appWidgetIds[i], views);
}
}
}







و در آخر باید یه سری چیزارو به فایل manifest اضافه کنیم:

<receiver android:name="esme hamun kelasi ke sakhtim">
<intetn-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
</intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/my_widget_provider"/>
</receiver>

اینا مراحل ایجاد و استفاده از یک ویجت بودن. حالا برای اینکه کارای دیگه بکنی باید همین مسیر رو بری فقط طبق نیازت باید از عناصر مرتبط استفاده کنی.