所以我正在做我的第一次真正的Android应用尝试,只是一个简单的垒球比赛记分员。我有它计算分数、出局等,现在它只显示“主场”和“客场”。我想让用户有机会输入实际的团队名称。为此,我添加了一个自定义 AlertDialog,它会弹出一个 EditText,因此当您点击“确定”时,它将更新主/客队名称。
问题是我这周的大部分时间都在谷歌上搜索,但我还没有找到一种方法来真正做到这一点。我已经尝试标记片段的布局 XML,以便我可以找到 EditText,但它总是给我一个空引用并使应用程序崩溃。我添加了一个 TextWatcher,它可能会查看片段的文本,但一旦更改并点击“OK”,什么也没发生。尝试将 TextWatch 添加到片段中,我认为它崩溃了,大约是两个小时前,我已经筋疲力尽了。
真的,我认为我需要一种方法让片段找到带有团队名称的 TextView 并在我确定单击时将其更改为 EditText 的值,但我不知道该怎么做。又或者是我看过但不理解,我才做了两个月左右。我会发布我的代码,但我删除了所有不起作用的东西,因为它占用了大部分屏幕空间。有任何想法吗?
编辑:所以我遵循下面关于定义视图的建议,大概找到了 EditText 的值,但是点击“OK”只是让它将 TextView 设置为空白值。我认为这是因为对话框关闭时 EditText 的内容消失了。要么这样要么这都是错的。 View dialogname = getActivity().getLayoutInflater().inflate(R.layout.fragment_home, null);
EditText mEtName = (EditText) dialogname.findViewById(R.id.homeName);
View mainAct = getActivity().getLayoutInflater().inflate(R.layout.activity_softball, null);
TextView oTextView = (TextView) mainAct.findViewById(R.id.teamOne);
newName = mEtName.getText().toString();
oTextView.setText(newName)