我有一個有「確定」按鈕的活動。我有一個'編輯'按鈕,它將打開一個對話框(theme="@android:style/Theme.Holo.Light.Dialog"
)。當我在EditDialog中時,我可以在後臺Activity中看到OK按鈕,然後我可以按下它,並且它正在註冊。Android:後臺按鈕「對話框」的活動是否處於活動狀態?
有沒有一種方法來禁用背景的活動動作時的對話是開放的?即我想單獨修改對話框中的內容。
編輯:添加顯示此行爲的示例代碼。 主要活動:
public class DialogTestActivity extends Activity implements OnClickListener {
private final String TAG = "DialogTest.main";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
((Button) findViewById(R.id.button_open)).setOnClickListener(this);
((Button) findViewById(R.id.button_ok)).setOnClickListener(this);
}
public void onClick(View v) {
switch (v.getId()) {
case R.id.button_ok:
Log.w(TAG, "OK Button Pressed!");
break;
case R.id.button_open:
Log.d(TAG, "Opening new Window.");
Intent intent = new Intent(this, TestDialog.class);
startActivity(intent);
default:
break;
}
}
}
TestDialog '對話':
public class TestDialog extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test_dialog);
LayoutParams params = getWindow().getAttributes();
params.height = LayoutParams.WRAP_CONTENT;
Window window = this.getWindow();
window.setAttributes((android.view.WindowManager.LayoutParams) params);
window.setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,
WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
}
}
清單:
<activity
android:name=".DialogTestActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.Holo.Light" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".TestDialog"
android:label="@string/dialog_label"
android:theme="@android:style/Theme.Holo.Light.Dialog" >
</activity>
與上面的代碼,當TestDialog是開放的,在後臺活動的按鈕按已註冊 - OK Button Pressed!
將被記錄。
當'Dialog'是在前臺,沒有在底層活動應該點擊。如果你可以創建一個示範項目來展示你的問題,我會很樂意看到它。 – CommonsWare
上面給出的示例代碼。 – Koottan