I want to create a simple application widget that has two text fields and two buttons for the previous / next. I find it difficult to handle button clicks in application widgets. Actually my wish is, if the user clicks on the previous button, I want to show the previous value, and if the user clicks the "Next" button, I want to show the next value from the database. How to find out which button is pressed? here I register a button to listen to by pressing a button
public static class UpdateWidgetService extends IntentService {
public UpdateWidgetService() {
super("UpdateWidgetService");
}
@Override
protected void onHandleIntent(Intent intent) {
AppWidgetManager appWidgetManager = AppWidgetManager
.getInstance(this);
int incomingAppWidgetId = intent.getIntExtra(EXTRA_APPWIDGET_ID,
INVALID_APPWIDGET_ID);
if (incomingAppWidgetId != INVALID_APPWIDGET_ID) {
updateOneAppWidget(appWidgetManager, incomingAppWidgetId);
}
}
private void updateOneAppWidget(AppWidgetManager appWidgetManager,
int appWidgetId) {
DatabaseManager dbManager = new DatabaseManager(this);
dbManager.open();
String contactNumber, date, status, message;
ArrayList<QueuedMessage> listOfQuedMessage = (ArrayList<QueuedMessage>) dbManager
.fetchContactNumber();
if (listOfQuedMessage.size() == 0)
Log.i("Db", "null");
else{
date = dbManager.fetchDate();
message = dbManager.fetchMessage();
status = dbManager.fetchStatus();
dbManager.closeDatabase();
RemoteViews views = new RemoteViews(this.getPackageName(),
R.layout.schdulesms_appwidget_layout);
views.setTextViewText(R.id.to_appwidget_saved_data,
listOfQuedMessage.get(count).contacNumber);
views.setTextViewText(R.id.date_appwidget_saved_data, date);
views.setTextViewText(R.id.status_appwidget_saved, status);
views.setTextViewText(R.id.message_appwidgset_saved_data, message);
**
if(button1){
btnNxtClick(views, appWidgetId,listOfQuedMessage.size());
}else{
btPrevClick(views, appWidgetId, listOfQuedMessage.size());
}
appWidgetManager.updateAppWidget(appWidgetId, views);
}
}
private void btnNxtClick(RemoteViews views, int appWidgetId,int sizeOfList) {
Intent btnNextIntent = new Intent(this, this.getClass());
btnNextIntent.putExtra(EXTRA_APPWIDGET_ID, appWidgetId);
PendingIntent btnNextPendingIntent = PendingIntent.getService(this,
0, btnNextIntent, PendingIntent.FLAG_UPDATE_CURRENT);
views.setOnClickPendingIntent(R.id.btnNext, btnNextPendingIntent);
}
private void btPrevClick(RemoteViews views, int appWidgetId,int sizeOfList) {
Intent btnNextIntent = new Intent(this, this.getClass());
btnNextIntent.putExtra(EXTRA_APPWIDGET_ID, appWidgetId);
PendingIntent btnNextPendingIntent = PendingIntent.getService(this,
0, btnNextIntent, PendingIntent.FLAG_UPDATE_CURRENT);
views.setOnClickPendingIntent(R.id.btnPrev, btnNextPendingIntent);
}
}
can someone help me solve this problem? thank