1
首先抱歉我的英文不好個別待定意向的小窗口每個按鈕
我有使用意向服務做的作業AppWidget 我的應用程序部件有3個按鈕,如果用戶按每個按鈕去主要的活動,但與不同的ContentViews, 現在的問題是任何時間用戶點擊任何按鈕,它進入主要活動,但與第一個contentview,我的ID總是1; 這是我的代碼; 意圖服務
public static class ToggleService extends IntentService{
public ToggleService(){
super("AppWidget$ToggleService");
}
@Override
protected void onHandleIntent(Intent intent) {
// TODO Auto-generated method stub
ComponentName me = new ComponentName(this, AppWidget.class);
AppWidgetManager mgr = AppWidgetManager.getInstance(this);
mgr.updateAppWidget(me, buildUpdate(this));
}
public RemoteViews buildUpdate(Context ctx){
RemoteViews rmt = new RemoteViews(ctx.getPackageName(), R.layout.widget);
Intent i3 = new Intent(this,AppWidget.class);
i3.putExtra("ID", 3);
PendingIntent pi3 = PendingIntent.getBroadcast(ctx, 0, i3, 0);
Intent i1 = new Intent(this, AppWidget.class);
i1.putExtra("ID", 1);
PendingIntent pi1 = PendingIntent.getBroadcast(ctx, 0, i1, 0);
Intent i2 = new Intent(this,AppWidget.class);
i2.putExtra("ID", 2);
PendingIntent pi2 = PendingIntent.getBroadcast(ctx, 0, i2, 0);
rmt.setOnClickPendingIntent(R.id.widgetButton1, pi1);
rmt.setOnClickPendingIntent(R.id.widgetButton2, pi2);
rmt.setOnClickPendingIntent(R.id.widgetButton3, pi3);
return rmt;
}
}
OnRecive
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
if(intent.getAction()==null){
int ID_CODE=intent.getIntExtra("ID", 0);
Intent i = new Intent(context , MainActivity.class);
i.putExtra("ID", ID_CODE);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}else{
super.onReceive(context, intent);
}
的OnUpdate
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
// TODO Auto-generated method stub
context.startService(new Intent(context,ToggleService.class));
}
MainActivity
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(android.os.Build.VERSION.SDK_INT>=11){
getActionBar().hide();
}
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
Intent i = getIntent();
if(i.getAction()!=null){
setContentView(R.layout.launcher);
Handler mHandler = new Handler();
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
setContentView(R.layout.activity_main);
}
}, 2000);}
else {
int ID=i.getIntExtra("ID", 0);
if(ID==1){
setContentView(R.layout.activity_main);
Toast.makeText(this, String.valueOf(ID), Toast.LENGTH_LONG).show();
}
if(ID==2){
setContentView(R.layout.bank_main);
Toast.makeText(this, "2", Toast.LENGTH_LONG).show();
}
if(ID==3){
setContentView(R.layout.other_main);
Toast.makeText(this, "3", Toast.LENGTH_LONG).show();
}
}
}
的問題是,每次我點擊每個widgetButton,ID的值始終爲1,它從不更改爲2或3 請幫我