【问题标题】:Call class extends Fragment method from a class extends Fragment从类扩展片段调用类扩展片段方法
【发布时间】:2016-04-05 12:32:06
【问题描述】:

如何从扩展片段的类调用扩展片段的类?我尝试查看各种教程和 Stack Overflow 问题,但是当我尝试实现 getParentFragment() 时出现错误 returns null

我的 MySetting.class:

public class MySettings extends Fragment {

    public static MySettings s_HomeActivity;
    s_HomeActivity=this;

    btAdd.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            try {
                AlertDialog.Builder alert = new AlertDialog.Builder(getActivity());
                alert.setTitle("Text");
                alert.setMessage("Name");

                // Set an EditText view to get user input
                final EditText input = new EditText(getActivity());
                alert.setView(input);
                alert.setPositiveButton("Add",
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog,
                                                int whichButton) {
                                String value = input.getText().toString();
                                MyJournalEvents m =(MyJournalEvents)s_HomeActivity.getParentFragment();
                                m.AddNewDisp(value);

                            }
                        });
                alert.setNegativeButton("Отмена",
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog,
                                                int whichButton) {
                                // Canceled.
                            }
                        });
                alert.show();
            } 
            catch (Exception ex) {
                int t = 0;
            }
        }
    });
}

我的 MyJournalEvents.class:

public class MyJournalEvents extends Fragment {

public void AddNewDisp(String name) {
    dataAdapterDisp.add(name);
    dataAdapterDisp.sort(null);
    dataAdapterDisp.notifyDataSetChanged();
    spComboDisp.setSelection(dataAdapterDisp.getPosition(name));
    saveConection(xxx, "xxx", "xxx", "xxx",
            "xxx", "xxx");
   }
}

【问题讨论】:

  • 你能说得更具体点吗?据我了解,您想要一个内部有另一个片段的片段,并且您希望它们都进行通信?
  • 可以在activity中保留MyJournalEvent的引用,通过getActivity().obj.AddNewDisp()调用
  • 这是两个独立的文件。它不是片段中的片段。我想从另一个中调用一个片段方法

标签: java android android-fragments


【解决方案1】:

在 Android 中,Fragment 的设计并非如此(相互调用方法)。

有多种方法可以实现 Fragment 之间的通信,您可以阅读更多关于 Android Fragments 是如何工作的here。您还可以在此处找到有关此主题的示例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多