آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

کنترل button در ویجت

میلاد  10 سال پیش  10 سال پیش
0 0

دوستان من برای ویجتم یه button گذاشتم که می خوام وقتی کاربر روش کلیک میکنه یه سری کارهایی انجام بده. مثلا پیغام toast چاپ کنه یا...

دوستان لطفا اگه کسی میدونه کمک کنه. خیلی مهمه

+1 0
کدشو بزار که بشه راهنمایی کرد ! (10 سال پیش)
0 0
فرقی نداره واسه چه کدی. مثلا توی صفحه ی اصلی، رویداد یک button را داخل بلاک setOnClickListener می نویسیم. ولی گویا از این تابع نمیشه واسه ویجت ها استفاده کرد. اگه روشش رو میدونید لطفا کمک کنید (10 سال پیش)
+1 0
این لینک رو خوب مطالعه کنید، بعد اگر نتونستید سعی میکنم بیشتر راهنمایی کنم. (10 سال پیش)
0 0
برای این کار باید از BroadcastReceiver استفاده کنی (10 سال پیش)
0 0
@Nosrati ممنون از راهنماییت. ولی توی این لینک که در مورد کار با button چیزی ننوشته. میشه بیشتر راهنمایی کنید؟ (10 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
Spirit  10 سال پیش
+3 0

انصافا نخوندید، کافیه setOnClickPendingIntent رو توی صفحه جستجو کنید. اینم یه مثال:

Manifest

<receiver android:name=".ButtonWidget">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
<action android:name="com.app.widget.TOAST" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/button_widget_info" />
</receiver>

WidgetClass

public class ButtonWidget extends AppWidgetProvider {

static final String TOAST_ACTION = "com.app.widget.TOAST";
static void updateAppWidget(Context context, AppWidgetManager appWidgetManager,
int appWidgetId) {
Intent i = new Intent(TOAST_ACTION);
PendingIntent pi = PendingIntent.getBroadcast(context,0,i,0);
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.button_widget);
views.setOnClickPendingIntent(R.id.button,pi);
appWidgetManager.updateAppWidget(appWidgetId, views);
}

@Override
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
if (TOAST_ACTION.equals(intent.getAction())) {
Toast.makeText(context, "Button Clicked", Toast.LENGTH_SHORT).show();
}
}

@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
// There may be multiple widgets active, so update all of them
for (int appWidgetId : appWidgetIds) {
updateAppWidget(context, appWidgetManager, appWidgetId);
}
}
}
0 0
ممنون آقا. دمت گرم (10 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .