【问题标题】:SetId() and then findviewById in java programmatically issueSetId() 然后在 java 中的 findviewById 以编程方式发出
【发布时间】:2017-11-15 13:19:46
【问题描述】:

您好,我正在尝试以编程方式设置 ID,但问题是如何在 Java 中设置 ID 后找到该 ID。我在fragments (Viewpager)工作,下面是我的代码。

property=new SearchableSpinner(getActivity());
city.setId(R.id.citybuy);
town.setId(R.id.townbuy);
property.setId(R.id.propertybuy);

 city = (SearchableSpinner) this.view.findViewById(R.id.citybuy);
  town = (SearchableSpinner) this.view.findViewById(R.id.townbuy);
 property = (SearchableSpinner) this.view.findViewById(R.id.propertybuy);

它没有找到id 并显示NullPointerException 如果我从set idXML,那么它会显示这个error

java.lang.IllegalArgumentException:错误的状态类,期待视图 状态但已接受课程 gr.escsoft.michaelprimez.searchablespinner.SearchableSpinner$SavedState 反而。这通常发生在两个不同类型的视图具有 同一层次结构中的相同 id..此视图的 id 是 id/city_wanted。 确保其他视图不使用相同的 id

虽然id'sfragments XML 完全不同

【问题讨论】:

  • 从您上面的代码中,我假设您没有将视图添加到布局中
  • 请确保您没有两次使用相同的 id..
  • 如何设置视图?
  • addView() 用于将视图设置为布局

标签: java android android-fragments android-viewpager


【解决方案1】:

我相信您正在将 id 设置为 xml 中的视图,现在您再次将相同的 id 设置为同一视图。

【讨论】:

  • 我没有在 xml 中设置 id,我只是在运行时在 java 中设置,但问题是如何在 java 中再次找到该 id?你能给我发一些代码示例吗?
  • @WaleedAsim 仔细检查您的代码两次。当你两次使用相同的id时会出现这个问题。
  • @SudheeshR 我整天检查我的代码。并更改了这些布局中的每个 id,但仍然存在问题
  • 好的,然后尝试将随机数设置为 id。例如。 city.setId(R.id.1212); town.setId(R.id.0202);并检查它是否仍然存在。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-01
  • 2011-03-18
  • 2014-03-17
相关资源
最近更新 更多