1
我有一個彈出我想創建,將有3個選擇。 (阻止,取消阻止,卸載)。下面我有一個確認|取消按鈕。我想查看哪個按鈕被按下,並基於該按鈕將顯示與選擇對應的烤麪包。我寫了一些代碼來顯示我正在嘗試做什麼。很明顯,如果項目[項目] ==塊將不起作用,但在簡化的意義上,這是我想要做的。有人能告訴我如何編寫OnClickListener來捕獲單擊按鈕以及單擊確認時如何區分它?確定選擇使用警報對話框(單選按鈕)
代碼:
package com.popup;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;
public class PopupActivity extends Activity {
String TAG = "PopUpActivity";
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
BlockUnblockUninstallPopUp("");
String TAG = "PopUpActivity";
}
public void BlockUnblockUninstallPopUp(final String PackageName){
//Items you would like to list as options.
final CharSequence[] items = {"Block", "UnBlock", "Uninstall"};
String flag = null;
AlertDialog.Builder builder = new AlertDialog.Builder(PopupActivity.this);
//Title of Popup
builder.setTitle("What would you like to do?");
builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() {
//When you click the radio button
public void onClick(DialogInterface dialog, int item) {
}
});
//When you click Confirm
builder.setPositiveButton("Confirm",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
if(items[item] == "Block")
{
Toast.makeText(PopupActivity.this,PackageName + " Blocked.", Toast.LENGTH_SHORT).show();
Log.d(TAG,PackageName + " Blocked.");
}
if(items[item] == "Unblock")
{
Toast.makeText(PopupActivity.this,PackageName + " Unblocked.", Toast.LENGTH_SHORT).show();
Log.d(TAG,PackageName + " Unblocked.");
}
if(items[item] == "Uninstall")
{
Toast.makeText(PopupActivity.this,PackageName + " Uninstalled.", Toast.LENGTH_SHORT).show();
Log.d(TAG,PackageName + " Uninstalled.");
}
}
});
//When you click Cancel, Leaves PopUp.
builder.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
});
//Creates the AlertDialog
AlertDialog alert = builder.create();
//Starts the Popup.
alert.show();
}
}
這似乎是它應該工作。我有一個問題(可能是一個愚蠢的問題)。它說我需要做它 Final int i;但後來我得到: 多個標記在該行 \t - 最後的局部變量i不能分配的,因爲它是在一個封閉的 \t類型定義 \t - 不能指非最終變量i的內部類中定義在不同的 \t方法 – PeterL 2012-02-22 21:46:32
任何想法如何解決? – PeterL 2012-02-22 21:47:02
使其成爲全球變量 – 2012-02-22 21:48:32