为了账号安全,请及时绑定邮箱和手机立即绑定

如何从对话框片段打开新活动

如何从对话框片段打开新活动

HUX布斯 2021-10-06 10:26:56
我的程序在 MainActivity.java 中运行时打开一个 DialogFragment 类我希望能够单击该对话框的“中性按钮”并打开一个新活动 SensorDataDisplay.java我无法找到在我的按钮的 onClick 中引用上下文的正确方法。package com.august.customtisensortagclient;import android.app.AlertDialog;import android.app.Dialog;import android.content.Context;import android.content.DialogInterface;import android.content.Intent;import android.os.Bundle;import android.support.v4.app.DialogFragment;import java.util.ArrayList;public class GetInfoDialog extends DialogFragment {    @Override    public Dialog onCreateDialog(Bundle savedInstanceState) {        final String thisWhichGetInfoDialog = ((MainActivity)getActivity()).getWhichGetInfoDialog();        final ArrayList<String> thisScannedDevicesArrayList =                ((MainActivity)getActivity()).getScannedDevicesArrayList();        final int thisIsInLeftConnectedDeviceDisplay = ((MainActivity)getActivity()).getIsInLeftConnectedDeviceDisplay();        final int thisIsInRightConnectedDeviceDisplay = ((MainActivity)getActivity()).getIsInRightConnectedDeviceDisplay();        int thisIsInThisConnectedDeviceDisplay = 0;        if (thisWhichGetInfoDialog == "Left") {            thisIsInThisConnectedDeviceDisplay = thisIsInLeftConnectedDeviceDisplay;        } else if (thisWhichGetInfoDialog == "Right")            thisIsInThisConnectedDeviceDisplay = thisIsInRightConnectedDeviceDisplay;        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());        builder.setTitle(thisWhichGetInfoDialog + " Sensor Info");        builder.setMessage("MAC Address: " + thisScannedDevicesArrayList.get(thisIsInThisConnectedDeviceDisplay));        builder.setNeutralButton("View Data", new DialogInterface.OnClickListener() {
查看完整描述

2 回答

?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

DialogFragmenthasgetActivity()getContext()方法(它继承自Fragment),两者都适用于您的情况。如果您在从匿名类访问这些方法时遇到问题(不应该是这种情况),您可以使用GetInfoDialog.this.getActivity()语法。

查看完整回答
反对 回复 2021-10-06
?
HUH函数

TA贡献1836条经验 获得超4个赞

getActivity() 返回片段附加到的 Activity


builder.setNeutralButton("View Data", new DialogInterface.OnClickListener() {

                @Override

                public void onClick(DialogInterface dialog, int which) {

                    Intent myIntent = new Intent(getActivity(), SensorDataDisplay.class);

                    myIntent.putExtra("key", "TEST VALUE"); //Optional parameters

                    getActivity().startActivity(myIntent);

                }

            });


查看完整回答
反对 回复 2021-10-06
  • 2 回答
  • 0 关注
  • 126 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信