2011-12-02 151 views
3

我的窗口小部件有幾個ImageButtons,設置onClicked事件對他們來說,我使用的PendingIntent:Android小部件:如何確定哪個按鈕被點擊?

Intent intent = new Intent(context, UpdateService.class); 
PendingIntent pendingIntent = PendingIntent.getService(context, 0, intent, 0); 

RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.main); 
remoteViews.setOnClickPendingIntent(R.id.Button1, pendingIntent); 

如果我想只用一個的PendingIntent和服務爲所有的按鈕,我如何確定哪個按鈕被clickd? 謝謝!

+0

韋恩,我們需要完整的代碼才能工作。這段代碼並沒有多說關於按鈕...... – Phil

+0

我認爲這就夠了: - ?,所有的按鈕都是在xml文件中聲明的。我可以通過使用remoteview.setOnClickPendingIntent具有不同的意圖和服務來爲每個按鈕設置onclicked事件,但效率不高,因此我只想使用一個Service但我不知道哪個按鈕被點擊。 – Wayne

回答

0

我不明白你爲什麼只想用一個PendingIntent。答案爲每次點擊創建多個意圖。最簡單的是給每個Intent一個特殊的行動。通過這種方式,您可以在收到意圖時將點擊事件分開。

+0

我的意思是我只想實現一個Service,而不是一個Intent。也許是我找到解決方案。我會用很多意圖和一個服務。要確定點擊哪個按鈕,我將使用putExtras。 謝謝! – Wayne

0

如何確定哪個按鈕被點擊?謝謝!

這個怎麼樣?我將這段代碼添加到了我的MainActivity.java文件中。我的activity_main.xml有不同的按鈕,取決於你按哪一個按鈕它將你帶到一個特定的網站。我不想多次重複openWebSite()函數,所以我嘗試了v.getID(),它爲按下的按鈕返回一個唯一的值。我會用這個唯一的號碼去正確的網站。

public void openWebSite(View v) { 

    if (v.getId()==2131230722) { 
    String url = "https://www.facebook.com/pages/Emily-Otnes/110931118993282"; 
    Intent i = new Intent(Intent.ACTION_VIEW); 
    i.setData(Uri.parse(url)); 
    startActivity(i); 

    } 
    Log.e("test", String.valueOf(v.getId())); 
} 
相關問題