写这篇文章的主要目的是介绍对话框形式的Activity,其中也涉及到一些Menu的设计问题,当触发某一事件,出现一个对话框形式的Activity之后,前一个Activity失去焦点,同时,前一个Activity回调onPause(),进入到这一状态之中。首先让我们先来看看Menu和对话框形式的Activity的截图:
用户可以看到在Menu之中有三个选项,用户可以通过相应的回调函数实现想实现的功能,这里不多做解释,如下是所用到的源代码,为了说明选择某一个Menu选项打方法,作者实现了这个函数,并实现了一些简单的功能:
想要实现对话框形式的Activity,需要在Manifest之中添加这样一句话:android:theme="@android:style/Theme.Dialog"
具体的实现源代码:
public class theme_dialog extends Activity {
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity03);
button=(Button)findViewById(R.id.button5);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
theme_dialog.this.finish();
}
});
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
menu.add(0, 1, 1, "About");
menu.add(0, 2, 2, "Exit");
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
case 1:
Toast.makeText(MainActivity.this, "This is My Android Application!", Toast.LENGTH_SHORT).show();
break;
case 2:
MainActivity.this.finish();
default:
break;
}
return super.onOptionsItemSelected(item);
}