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

Java 在Android中从不同视图调用按钮,java,android,view,android-activity,Java,Android,View,Android Activity,在我的应用程序中,我在视图顶部有3个单选按钮。当我选择其中一个时,下面的“主体”将更改为我定义的XML视图 (如果您想要更多信息+图片,我在前面问了一个问题:) 现在我想从不同的视图调用并更改按钮和edittext的文本 当我执行btnautotech=(按钮)findViewById(R.id.btnautotech)时它给出了一个NullPointerException 我如何才能做到这一点?取决于您如何解决上一个链接的问题。如果将新视图膨胀到要更改的区域,则无法使用finViewById检

在我的应用程序中,我在视图顶部有3个单选按钮。当我选择其中一个时,下面的“主体”将更改为我定义的XML视图

(如果您想要更多信息+图片,我在前面问了一个问题:)

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

当我执行
btnautotech=(按钮)findViewById(R.id.btnautotech)时它给出了一个NullPointerException


我如何才能做到这一点?

取决于您如何解决上一个链接的问题。如果将新视图膨胀到要更改的区域,则无法使用finViewById检索对它们的引用。也就是说,它们实际上并不存在

根据其他视图结果重新显示要基于其显示文本的视图时,必须在重新附着/显示视图时重新指定文本。然后,您可以从类的成员变量,或者可能从SharedReferences或contentProvider分配文本

无论哪种方式,这都取决于您如何解决原始问题以及何时附加/删除视图

总结:

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

  • 附加视图A
  • 去看B
  • 单击视图B中的按钮或其他内容,并更新视图A使用的成员变量
  • 转到视图A(拆卸视图B和连接视图A)
  • 从成员变量设置视图A上的文本(例如,通过单击视图B中的按钮进行更新)
    • 试试这个

      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);
      

      谢谢………

      那么你说的是,我不应该从XML视图中加载3个视图,而是应该创建按钮代码,并在切换视图时隐藏/显示它们?我可以这么做,但那样我就浪费了1,5周。。你确定没有别的办法吗?事实上,我不能这么做。我需要为我已经拥有的当前外部XML视图提供一个解决方案:(…感谢这项工作!!必须添加body.addView(ll);但是….:D