无法在DialogFragment中将文本设置为EditText

时间:2017-08-20 10:42:08

标签: java android android-dialogfragment

我在listview行中有一个按钮,当我点击它时,我想要打开dialogFragment并将编辑文本(位于dialogFragment内)的文本设置为某个String。

问题是:当涉及到settext方法的行时,app会关闭。

这是我用来打开dialogFragment并为其设置文本的代码。

public void onClick(View v) {
    FragmentManager manager = getFragmentManager();
    View parentRow = (View) v.getParent();
    ListView listView = (ListView) parentRow.getParent();
    final int position = listView.getPositionForView(parentRow);
    TrempData data = adapter.getItem(position); //from here im getting the data that i want to set to the edit text. 
    Addtremp trempDialog = new Addtremp();
    trempDialog.show(manager, "Addtremp");
    trempDialog.from.setText(data.get_from());
    trempDialog.to.setText(data.get_to());
    trempDialog.date.setText(data.get_date());
    trempDialog.time.setText(data.get_time());
    trempDialog.extra.setText(data.get_extras());
}

希望有人可以帮助我。

感谢。

1 个答案:

答案 0 :(得分:0)

由于NullPointerException,您的应用肯定会崩溃。因为您正在尝试在尚未呈现的UI上设置数据。

应遵循哪些步骤?

  1. 将数据传递给DialogFragment,它将以参数的形式显示在UI上。

  2. 创建回调,在Dialog上呈现UI时会通知您。检查一下Callback to a Fragment from a DialogFragment 。在获取监听器时,您可以在UI组件上设置数据。

  3. 我个人更喜欢解决方案1,为此你应该阅读passing argument to DialogFragment