کلیدستان

نسخه‌ی کامل: نمایش تصویر تصادفی در ویجت (widget) (برنامه نویسی اندروید)
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
با سلام و خسته نباشید . من از این کد برای نمایش تصویر تصادفی در ویجت استفاده می کنم. اما متاسفانه هیچ اتفاقی نمیوفته. ممنون میشم راهنمایی کنید.

کد پی‌اچ‌پی:
package ir.akbar.widget;

/**
 * Created by Akbar on 09/02/2016.
 */

import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;
import android.content.Intent;
import java.util.Random;
import android.R.drawable;
import android.app.Activity;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.RemoteViews;

public class 
ExampleAppWidgetProvider extends AppWidgetProvider {
 
   int max 16;
 
   int score 0;
 
   String imgName;
 
   Random rand = new Random();

 
   String uri "@drawable/img1.png";


 
   public void onUpdate(Context contextAppWidgetManager appWidgetManagerint[] appWidgetIds) {
 
       super.onUpdate(contextappWidgetManagerappWidgetIds);
 
       final int N appWidgetIds.length;

 
       Log.i("ExampleWidget""Updating widgets ");
 
       
        for 
(int i 0appWidgetIds.lengthi++) {
 
           Random r = new Random();
 
           int min 1;
 
           int max 721;
 
           int id3 r.nextInt(max) + min;
 
           int id2 id3 1;
 
           Resources res context.getResources();

 
           int rndN rand.nextInt(5) + 1;
 
           String imgName "img" rndN;;
 
           int id context.getResources().getIdentifier(imgName"drawable"context.getPackageName());
 
           if (id == id) {
 
               id context.getResources().getIdentifier(imgName"drawable"context.getPackageName());
 
               id2 id3 1;
 
           }
 
           int appWidgetId appWidgetIds;
 
           Intent intent = new Intent(contextMainActivity.class);
 
           PendingIntent pendingIntent PendingIntent.getActivity(context0intent0);
 
           RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget1);
 
           views.setImageViewResource(R.id.image_in_widgetid);
 
           appWidgetManager.updateAppWidget(appWidgetIdviews);
 
       }
 
   }



با سلام.
معمولا در مواردی که با Force Close روبرو می شویم یا اینکه عملیاتی که انتظار داشتیم اجرا گردد، اجرا نمی شود، توصیه می شود که به خطایابی پروژه اندروید بر روی گوشی واقعی یا شبیه سازها بپردازید (کلید شماره 813)، دقت شود که منظور ما از خطایابی، همیشه یافتن خطایی در برنامه که باعث Force Close می شود نیست، بلکه گاهی منظورمان این است که فرد با نوشتن تعدادی پیام برای نمایش در LogCat (کلید شماره 2719)، روند اجرای کدها را با جزئیاتی که در LogCat نمایش داده می شود، بررسی نماید.
قبل از هر چیز باید ببینید که اصلا روش onUpdate فراخوانی می شود یا خیر (بر اساس همان پیام های LogCat). به عنوان مثال، یک مورد در لینک زیر ذکر شده است :

http://stackoverflow.com/questions/97441...oid-widget

Flower
تشکر از لطف شما.مشکل حل شد . فقط یه مشکل دیگه دارم اونم اینکه میخوام ویجت هر یک دقیقه تصویر رو عوض کنه.اما فقط بار اول بعد از یک دقیقه عوض میشه و ادامه پیدا نمی کنه.

اینم کد های widget_info.xml

کد:
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
   android:minWidth="294dp"
   android:minHeight="72dp"
   android:updatePeriodMillis="60000"
   android:initialLayout="@layout/widget1">
</appwidget-provider>
این خطا رو میده
Unable to start service Intent { flg=0x4 cmp=ir.akbar.widget/.ExampleAppWidgetProvider (has extras) } U=0: not found
اینم اون کد
کد:
           PendingIntent pending = PendingIntent.getService(context, 0, new Intent(context,MainActivity.class ), 0);
(۱۳۹۵/۰۶/۱۲, ۱۰:۳۳ ب.ظ)akbarg64 نوشته: [ -> ]با سلام و خسته نباشید . من از این کد برای نمایش تصویر تصادفی در ویجت استفاده می کنم. اما متاسفانه هیچ اتفاقی نمیوفته. ممنون میشم راهنمایی کنید.

کد پی‌اچ‌پی:
package ir.akbar.widget;

/**
 * Created by Akbar on 09/02/2016.
 */

import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;
import android.content.Intent;
import java.util.Random;
import android.R.drawable;
import android.app.Activity;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.RemoteViews;

public class 
ExampleAppWidgetProvider extends AppWidgetProvider {
 
   int max 16;
 
   int score 0;
 
   String imgName;
 
   Random rand = new Random();

 
   String uri "@drawable/img1.png";


 
   public void onUpdate(Context contextAppWidgetManager appWidgetManagerint[] appWidgetIds) {
 
       super.onUpdate(contextappWidgetManagerappWidgetIds);
 
       final int N appWidgetIds.length;

 
       Log.i("ExampleWidget""Updating widgets ");
 
       
        for 
(int i 0appWidgetIds.lengthi++) {
 
           Random r = new Random();
 
           int min 1;
 
           int max 721;
 
           int id3 r.nextInt(max) + min;
 
           int id2 id3 1;
 
           Resources res context.getResources();

 
           int rndN rand.nextInt(5) + 1;
 
           String imgName "img" rndN;;
 
           int id context.getResources().getIdentifier(imgName"drawable"context.getPackageName());
 
           if (id == id) {
 
               id context.getResources().getIdentifier(imgName"drawable"context.getPackageName());
 
               id2 id3 1;
 
           }
 
           int appWidgetId appWidgetIds;
 
           Intent intent = new Intent(contextMainActivity.class);
 
           PendingIntent pendingIntent PendingIntent.getActivity(context0intent0);
 
           RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget1);
 
           views.setImageViewResource(R.id.image_in_widgetid);
 
           appWidgetManager.updateAppWidget(appWidgetIdviews);
 
       }
 
   }




سلام
دوست من یه لینک برات میذارم که میتونی ازش کمک بگیری مشکلتو برطرف کنی
لینک کمکی
سلام.دوستان/سورس کد کامل رو دارید؟   دوستان میتونید این کد رو به صورت کامل بنویسید؟خیلی بهش نیاز دارم
(۱۳۹۵/۰۶/۲۳, ۱۰:۳۰ ق.ظ)shimasariri نوشته: [ -> ]
(۱۳۹۵/۰۶/۱۲, ۱۰:۳۳ ب.ظ)akbarg64 نوشته: [ -> ]با سلام و خسته نباشید . من از این کد برای نمایش تصویر تصادفی در ویجت استفاده می کنم. اما متاسفانه هیچ اتفاقی نمیوفته. ممنون میشم راهنمایی کنید.

کد پی‌اچ‌پی:
package ir.akbar.widget;

/**
 * Created by Akbar on 09/02/2016.
 */

import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;
import android.content.Intent;
import java.util.Random;
import android.R.drawable;
import android.app.Activity;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.RemoteViews;

public class 
ExampleAppWidgetProvider extends AppWidgetProvider {
 
   int max 16;
 
   int score 0;
 
   String imgName;
 
   Random rand = new Random();

 
   String uri "@drawable/img1.png";


 
   public void onUpdate(Context contextAppWidgetManager appWidgetManagerint[] appWidgetIds) {
 
       super.onUpdate(contextappWidgetManagerappWidgetIds);
 
       final int N appWidgetIds.length;

 
       Log.i("ExampleWidget""Updating widgets ");
 
       
        for 
(int i 0appWidgetIds.lengthi++) {
 
           Random r = new Random();
 
           int min 1;
 
           int max 721;
 
           int id3 r.nextInt(max) + min;
 
           int id2 id3 1;
 
           Resources res context.getResources();

 
           int rndN rand.nextInt(5) + 1;
 
           String imgName "img" rndN;;
 
           int id context.getResources().getIdentifier(imgName"drawable"context.getPackageName());
 
           if (id == id) {
 
               id context.getResources().getIdentifier(imgName"drawable"context.getPackageName());
 
               id2 id3 1;
 
           }
 
           int appWidgetId appWidgetIds;
 
           Intent intent = new Intent(contextMainActivity.class);
 
           PendingIntent pendingIntent PendingIntent.getActivity(context0intent0);
 
           RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget1);
 
           views.setImageViewResource(R.id.image_in_widgetid);
 
           appWidgetManager.updateAppWidget(appWidgetIdviews);
 
       }
 
   }




سلام
دوست من یه لینک برات میذارم که میتونی ازش کمک بگیری مشکلتو برطرف کنی
لینک کمکی

سلام
شما برای تغییر تصادفی تصاویر میتونید اسم تصاویر توی ارایه نگهدارید و با ایجاد تابع رندوم از صفر تا مقدار ایندکس ارایه که موجود استفاده کنی، برای اجرای مداوم یک دستور هم میتونی از timer استفاده کنی، از کلاس های سرویس هم برای کارت میتونی استفاده کنی که ویجت رو آپدیت کنه ولی خب بازم از timer برای اجرای دستورت بصورت بازه زمانی باید استفاده کنی
(۱۳۹۵/۰۶/۱۴, ۰۸:۳۵ ب.ظ)akbarg64 نوشته: [ -> ]تشکر از لطف شما.مشکل حل شد . فقط یه مشکل دیگه دارم اونم اینکه میخوام ویجت هر یک دقیقه تصویر رو عوض کنه.اما فقط بار اول بعد از یک دقیقه عوض میشه و ادامه پیدا نمی کنه.

اینم کد های widget_info.xml

کد:
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
   android:minWidth="294dp"
   android:minHeight="72dp"
   android:updatePeriodMillis="60000"
   android:initialLayout="@layout/widget1">
</appwidget-provider>
این خطا رو میده
Unable to start service Intent { flg=0x4 cmp=ir.akbar.widget/.ExampleAppWidgetProvider (has extras) } U=0: not found
اینم اون کد
کد:
           PendingIntent pending = PendingIntent.getService(context, 0, new Intent(context,MainActivity.class ), 0);

سلام
شما برای تغییر تصادفی تصاویر میتونید اسم تصاویر توی ارایه نگهدارید و با ایجاد تابع رندوم از صفر تا مقدار ایندکس ارایه که موجود استفاده کنی، برای اجرای مداوم یک دستور هم میتونی از timer استفاده کنی، از کلاس های سرویس هم برای کارت میتونی استفاده کنی که ویجت رو آپدیت کنه ولی خب بازم از timer برای اجرای دستورت بصورت بازه زمانی باید استفاده کنی
(۱۳۹۸/۰۶/۱۷, ۰۱:۰۳ ق.ظ)e.mahi نوشته: [ -> ]
(۱۳۹۵/۰۶/۱۴, ۰۸:۳۵ ب.ظ)akbarg64 نوشته: [ -> ]تشکر از لطف شما.مشکل حل شد . فقط یه مشکل دیگه دارم اونم اینکه میخوام ویجت هر یک دقیقه تصویر رو عوض کنه.اما فقط بار اول بعد از یک دقیقه عوض میشه و ادامه پیدا نمی کنه.

اینم کد های widget_info.xml

کد:
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
   android:minWidth="294dp"
   android:minHeight="72dp"
   android:updatePeriodMillis="60000"
   android:initialLayout="@layout/widget1">
</appwidget-provider>
این خطا رو میده
Unable to start service Intent { flg=0x4 cmp=ir.akbar.widget/.ExampleAppWidgetProvider (has extras) } U=0: not found
اینم اون کد
کد:
           PendingIntent pending = PendingIntent.getService(context, 0, new Intent(context,MainActivity.class ), 0);

سلام
شما برای تغییر تصادفی تصاویر میتونید اسم تصاویر توی ارایه نگهدارید و با ایجاد تابع رندوم از صفر تا مقدار ایندکس ارایه که موجود استفاده کنی، برای اجرای مداوم یک دستور هم میتونی از timer استفاده کنی، از کلاس های سرویس هم برای کارت میتونی استفاده کنی که ویجت رو آپدیت کنه ولی خب بازم از timer برای اجرای دستورت بصورت بازه زمانی باید استفاده کنی
سلام داداش.من میخام یه ویجت درست کنم که هر روز تغییر کنه در صفحه اصلی.مثلا نمایش حدیث.ویجت کار نکردم.دانش کدنویسی ندارم ولی علاقه مند هستم به یادگیری.قبلا یه برنامه از روی آموزش ها درست کردم..میتونید کمکم کنید..
(۱۳۹۸/۰۶/۱۷, ۰۱:۰۹ ق.ظ)iman2020 نوشته: [ -> ]
(۱۳۹۸/۰۶/۱۷, ۰۱:۰۳ ق.ظ)e.mahi نوشته: [ -> ]
(۱۳۹۵/۰۶/۱۴, ۰۸:۳۵ ب.ظ)akbarg64 نوشته: [ -> ]تشکر از لطف شما.مشکل حل شد . فقط یه مشکل دیگه دارم اونم اینکه میخوام ویجت هر یک دقیقه تصویر رو عوض کنه.اما فقط بار اول بعد از یک دقیقه عوض میشه و ادامه پیدا نمی کنه.

اینم کد های widget_info.xml

کد:
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
   android:minWidth="294dp"
   android:minHeight="72dp"
   android:updatePeriodMillis="60000"
   android:initialLayout="@layout/widget1">
</appwidget-provider>
این خطا رو میده
Unable to start service Intent { flg=0x4 cmp=ir.akbar.widget/.ExampleAppWidgetProvider (has extras) } U=0: not found
اینم اون کد
کد:
           PendingIntent pending = PendingIntent.getService(context, 0, new Intent(context,MainActivity.class ), 0);

سلام
شما برای تغییر تصادفی تصاویر میتونید اسم تصاویر توی ارایه نگهدارید و با ایجاد تابع رندوم از صفر تا مقدار ایندکس ارایه که موجود استفاده کنی، برای اجرای مداوم یک دستور هم میتونی از timer استفاده کنی، از کلاس های سرویس هم برای کارت میتونی استفاده کنی که ویجت رو آپدیت کنه ولی خب بازم از timer برای اجرای دستورت بصورت بازه زمانی باید استفاده کنی
سلام داداش.من میخام یه ویجت درست کنم که هر روز تغییر کنه در صفحه اصلی.مثلا نمایش حدیث.ویجت کار نکردم.دانش کدنویسی ندارم ولی علاقه مند هستم به یادگیری.قبلا یه برنامه از روی آموزش ها درست کردم..میتونید کمکم کنید..

سلام بله چرا که نه، در حد توانم کمک میکنم، میخوای برنامه بنویسی براش ویجت درست کنی یا نه فقط ویجت درست کنی؟
ID Me in Telegram : erfanprogrammer
میخام ویجت درست کنم..مثل این ویجت"ماه خوب خدا"
https://rasekhoon.net/mobile/software/sh...%A7%D9%86/

البته میخام تو این ویجت از انیمیشن هم استفاده کنم مثلا حرکت متن از راست به چپ.و اینکه علاوه بر دیالوگ که با کلیک بر روی دکمه بر روی ویجت باز میشه یه دکمه هم واسه هدایت به اکتیویتی اصلی برنامه داشته باشه.

من خیلی وقت گذاشتم واسه پیدا کردن سورس یا کد موفق نشدم.اصلا ویجت کار نکردم...ممنون میشم کمکم کنید وقتی هم نداریم .میخام آماده بشه واسه همین روزا.به نیت ماه محرم و صفر...من گرافیست هستم علاقه به یادگیری ویجت دارم تا در آینده خودم بتونم ویجت های مختلفی درست کنم.اجرتون با سیدالشهدا
آیدی تلگرام من واسه ارتباط سریعتر:  @iman_a_y
سلام اموزش درست کردن ویجت در لینک زیر میتونید مرحله به مرحله انجام بدید
http://thetechnocafe.com/how-to-create-w...droid-app/

موفق باشید
(۱۳۹۸/۰۶/۲۲, ۰۲:۱۸ ب.ظ)mehranbagvand نوشته: [ -> ]سلام اموزش درست کردن ویجت در لینک زیر میتونید مرحله به مرحله انجام بدید
http://thetechnocafe.com/how-to-create-w...droid-app/

موفق باشید

سلام.تشکر از راهنمایی.مشکل بنده با ساخت ویجت مرحله بعدش هست.یعنی بتونم تصاویر ویجت رو یک ساعت یکبار یا یک روز یکبار بر اساس تاریخ و زمان اتوماتیک تغییر بدم.مثل برنامه ماه خوب خدا
Heart