Java 在用户从自定义对话框输入后启动方法的问题
这是我的情况。在我的程序中,用户按下按钮,出现一个自定义对话框,请求输入。一旦用户完成,我需要这些信息通过TextView和ImageView反映在事先运行的活动中。我有一个方法可以做到这一点,但问题是一旦用户点击原始按钮,代码就会进入下一个方法,该方法反映了更改。我正在寻找一种方法,让程序等到对话框结束后再继续下一个更新信息的方法。最好的办法是什么?非常感谢您的帮助 我曾尝试使用DialogFragment更新代码,但现在我收到一个错误,指出存在类型不匹配,无法将BetType转换为DialogFragment。我有一个名为BetType的类,它扩展了DialogFragment。我下面的例子是“我在网上看到的,它们的结构都是一样的。”。我又一次陷入停滞Java 在用户从自定义对话框输入后启动方法的问题,java,android,Java,Android,这是我的情况。在我的程序中,用户按下按钮,出现一个自定义对话框,请求输入。一旦用户完成,我需要这些信息通过TextView和ImageView反映在事先运行的活动中。我有一个方法可以做到这一点,但问题是一旦用户点击原始按钮,代码就会进入下一个方法,该方法反映了更改。我正在寻找一种方法,让程序等到对话框结束后再继续下一个更新信息的方法。最好的办法是什么?非常感谢您的帮助 我曾尝试使用DialogFragment更新代码,但现在我收到一个错误,指出存在类型不匹配,无法将BetType转换为Dialo
private void selectBets() {
if (betType != 1) {
DialogFragment dialog = BetType(); //My error is here now
dialog.show(getSupportFragmentManager(), "bettype_Dialog");
}
}
在对话框中构建侦听器接口。 让您的呼叫框架或活动实施它
private OnFinishListener mOnFinishListener;
// Container Fragment must implement this interface
public interface OnFinishListener
{
public void OnFinish();
}
public void onAttachFragment(Fragment fragment)
{
try
{
mOnFinishListener = (OnFinishListener) fragment;
} catch (ClassCastException e)
{
throw new ClassCastException(fragment.toString() + " must implement OnFinishListener");
}
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState)
{
Log.i(TAG, "onCreateDialog");
onAttachFragment(getParentFragment());
...
}
然后把它放在任何你想让调用活动或片段知道的地方
if (mOnFinishListener != null)
mOnFinishListener.OnFinish();
您的活动或片段需要实现它并调用displayBets
@Override
public void OnFinish()
{
displayBets();
}
您可能应该使用a来监听对话框的OK按钮或其他等效按钮的单击。侦听器可以调用displayBets。有关如何使用此类侦听器的几个示例,请参见。问题:我的自定义对话框是它自己的类,带有自定义xml。由于它在不同的类cybersam中,它可以调用displayBets吗?仅仅因为对话框可能有自己的XML布局,并不意味着它有自己的类。有关如何使用自定义对话框布局的示例,请参见。displayBets和onCreateDialog可以在同一个片段中。但是,即使它们在不同的类中,其中一个应该仍然能够导入和使用另一个。嘿@Cybersam,我刚刚更新了我的代码以反映我们之前讨论的更改。出于某种原因,我的代码似乎无法将BetType识别为dialogFragment。任何帮助都将不胜感激。谢谢。我只是想和大家分享我终于明白了。在导入和片段管理器方面经历了一段艰难的时光,但我最终得到了它。谢谢你的帮助他们,我很高兴你让它工作了!也请考虑接受我的回答。谢谢。我将尝试实施你的建议,我将告诉你它是如何实现的。