我正在研究校园地图应用程序。 Map活动位于主活动上,但是,我对自定义对话框有不同的活动。 我总是得到这个自定义对话框。
实际上我希望它看起来像这样。
我有此活动的代码
public class AdminActivity extends FragmentActivity{
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(AdminActivity.this);
builder.setTitle(R.string.layers)
.setItems(R.array.layer_options, new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int which) {
// The 'which' argument contains the index position
// of the selected item
}
});
return builder.create();
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
Dialog dialog=onCreateDialog(savedInstanceState);
dialog.show();
}
}
此代码是主要活动的一部分,我将调用对话框..
@Override
public boolean onOptionsItemSelected(MenuItem item){
AdminDialog adminDialog;
switch(item.getItemId()){
case R.id.about:
Intent aboutUs = new Intent("com.android.cmumap.ABOUT");
startActivity(aboutUs);
break;
case R.id.search:
break;
case R.id.layers:
adminDialog= new AdminDialog();
adminDialog.show(getFragmentManager(), "custom-tag-goes-here");
break;
}
return false;
}
如何为AdminActivity调用地图活动?谢谢。
答案 0 :(得分:1)
您的班级应该是DialogFragment
的子类,而不是FragmentActivity
。请务必@Override
onCreateDialog(...)
方法。您也可以删除onCreate(...)
方法,因为DialogFragment
不需要这样做。
要显示DialogFragment
,而不是像Intent
那样使用Activity
,请在地图活动中执行以下操作。请注意,我重命名了您的课程,因为它现在不是Activity
而是Dialog
:
adminDialog= new AdminDialog();
adnimDialog.show(getFragmentManager(), "custom-tag-goes-here");
答案 1 :(得分:0)
感谢Nathan Walters爵士
这适用于自定义对话框的AdminDialog活动..
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.content.DialogInterface;
import android.os.Bundle;
public class AdminDialog extends DialogFragment{
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle(R.string.layers)
.setItems(R.array.layer_options, new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int which) {
// The 'which' argument contains the index position
// of the selected item
}
});
return builder.create();
}
}
我将这个用于调用对话框的主要活动..
AdminDialog adminDialog;
adminDialog= new AdminDialog();
adminDialog.show(getFragmentManager(), "custom-tag-goes-here");