好的 - 我是 android 新手和 java 新手。但我在前世做过代码......
我正在开发一个应用程序,现在尝试提取一些方法并将其放入实用程序类中。特别是,我有一个方法可以更新我想从活动中移出的文本视图。
在活动中,我有两个版本的方法,唯一的区别是一个可以接受参数列表中的视图(我用它来填充自定义对话框中的一些字段)。他们都工作得很好。
一旦放置在外部实用程序包/类中,该方法就不再起作用 - 没有错误,而且它似乎拥有它所需要的一切 - 我已经完成了一些日志记录,并且视图声称是可见的,并且 textview id 似乎是正确的。然而,屏幕上没有任何变化。
我猜这是完全明显和愚蠢的事情,但我似乎无法解决它。
package xxx.xxx.Utility;
(some imports)
public class Utility {
public static void updateTextView(int id, String opt_data, View v) {
String TAG = "updateTextView: ";
if (v.getVisibility() == View.VISIBLE) Log.i(TAG," visible");
TextView tvTarget = (TextView) v.findViewById(id);
if (tvTarget == null) {
Log.i(TAG, "Error: updateTextView target is null");
}
if (opt_data != null) {
if (tvTarget != null) {
tvTarget.setText(opt_data);
}
} else {
if (tvTarget != null) {
tvTarget.setText(" ");
}
}
}
}
编辑带附加信息:
在最初的描述中,我提到这个方法也被用于用数据填充弹出对话框的某些字段。事实上,我可以以这种方式请求任意数量的对话框,它们都可以正确显示并使用正确(和不同)的数据。所以它似乎只有在尝试更新主要活动(初始)视图的电视数据时才会失败。