在Android中从不同视图调用按钮

时间:2010-12-20 15:56:48

标签: java android view android-activity

在我的应用程序中,我在视图顶部有3个radiobuttons。当我选择一个时,下面的'body'会改变我定义的XML视图。

(如果您想了解更多信息+图片,我之前提出了一个问题:Dynamically change view inside view in Android

现在我想从不同的视图中调用和更改按钮的文本和edittext。

当我btnAutopech = (Button) findViewById(R.id.btnAutopech);时,它会产生NullPointerException。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

取决于您如何解决与之关联的最后一个问题。如果您想要更改要更改的区域的新视图,那么您将无法使用finViewById检索对它们的引用。即他们实际上并不存在。

当您重新显示要在其中显示文本的视图时,在其他视图结果上,您必须在重新附加/显示视图时重新分配文本。然后,您可以从类的成员变量中分配文本,也可以从sharedPreferences或contentProvider分配文本。

另外,这种方式取决于您如何解决原始问题的问题以及何时附加/删除您的观点。

夏天:

看起来您在访问其他视图时删除了其他视图,因此请将数据存储在一个仍然存在的成员变量中。

  • 附加视图A
  • 要查看B
  • 点击视图B中的按钮或其他内容并更新视图A
  • 使用的成员变量
  • 转到视图A(删除视图B并附加视图A)
  • 在成员变量上设置视图A上的文本(例如,由于在视图B中单击按钮而更新)

答案 1 :(得分:1)

试试这个.......

LayoutInflater layoutInflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout ll= new LinearLayout(context);
ll=(LinearLayout)layoutInflater.inflate(R.layout.gegevens_verzekeringen, ll);
btnAutopech = (Button) ll.findViewById(R.id.btnAutopech);

感谢.........