将对话活动调用到地图活动

时间:2014-01-05 04:29:37

标签: android google-maps android-intent customdialog

我正在研究校园地图应用程序。 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调用地图活动?谢谢。

2 个答案:

答案 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");