gpt4 book ai didi

android - 使用 DialogFragment 从布局 xml 调用方法。它是如何工作的?

转载 作者:太空狗 更新时间:2023-10-29 15:16:29 25 4
gpt4 key购买 nike

假设我有这个按钮:

<Button
android:id="@+id/idone"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="D2"
android:onClick="myMeth"/>

我曾多次使用它来调用布局 xml 中的方法,因为它会调用膨胀此类 View 的 Activity 中的方法。

最近使用 DialogFragments,它根本不起作用。我不断收到错误消息,告诉我这种方法不存在。那么它在哪里寻找这样的方法呢?我已将它添加到 DialogFragment 类中:

public class myActivity extends DialogFragment {

public DiceDialog() {
// empty constructor
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.myDialog, container);
getDialog().setTitle("Hello");
return view;
}

public void myMeth(View view) {
//...
}

以及在实例化 FragmentManager 和调用对话框的 Activity 中:

public Class MainActiviry Extends  FragmentActivity {

//...
public void onCreate(Bundle savedInstanceState) {
// ..
FragmentManager fm = getSupportFragmentManager();
MyActivity dialog = new AddDiceDialog();
dialog.show(fm, "tag");
}

public void myMeth(View view){
//...
}

消息仍然是未找到 MyMeth。

我已经read使用接口(interface)和监听器是在 Activity 和对话 fragment 之间进行通信的正确方法,但我在这里想弄清楚的是在哪里进行 myMeth 调用,因为它被调用了。

最佳答案

您可以在Activity 中实现public myMeth(View view),然后它将检查当前可见的Fragment,并调用它的方法。

如果你想在你的Fragment中使用多个可调用方法,你可以利用调用 View 的id并实现一个switch,调用不同的 fragment 方法根据 View 的 id。

关于android - 使用 DialogFragment 从布局 xml 调用方法。它是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12354748/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com