我在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());
}
希望有人可以帮助我。
感谢。
答案 0 :(得分:0)
由于NullPointerException
,您的应用肯定会崩溃。因为您正在尝试在尚未呈现的UI上设置数据。
应遵循哪些步骤?
将数据传递给DialogFragment,它将以参数的形式显示在UI上。
创建回调,在Dialog
上呈现UI时会通知您。检查一下Callback to a Fragment from a DialogFragment
。在获取监听器时,您可以在UI组件上设置数据。
我个人更喜欢解决方案1,为此你应该阅读passing argument to DialogFragment