【问题标题】:how to access spinner inside different layout android如何访问不同布局android中的微调器
【发布时间】:2012-08-16 12:43:04
【问题描述】:

我一直在尝试解决过去一周遇到的问题,我正在尝试访问不同 xml 布局中的微调器,我想要的只是访问微调器并将数组添加到微调器。

这是我正在使用的代码,它不起作用

setContentView(R.layout.mainreg);
LinearLayout mainLayout = (LinearLayout)findViewById(R.id.main_layout_id);
View view123 = getLayoutInflater().inflate(R.layout.one2reg, mainLayout,false);

Spinner spin = (Spinner) view123.findViewById(R.id.spinnerproblem);
ArrayAdapter<String> adapter = 
    new ArrayAdapter<String> (this, android.R.layout.simple_spinner_item,items);    

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spin.setAdapter(adapter);
mainLayout.addView(view123);

【问题讨论】:

  • 问题是我无法访问微调器,因此我可以添加“item”数组也可以将 setOnItemSelectedListener 添加到微调器。我能想到的唯一问题就是我无法访问微调器。
  • 您在 Logcat 中看到了什么样的异常?此外,还不清楚以您的方式添加微调器有什么意义,为什么不在您的 mainreg xml 文件中将其声明为 main_layout_id 的子项?
  • 我想这样做是因为我得到了片段布局,它链接到三个不同的 xml 布局。所以在我的主要课程中,我制作了片段,这样我就可以滑动扔页面了。现在我面临这个问题,因为微调器处于不同的 xml 布局中。非常感谢安东
  • 您可能应该利用 布局技巧,而不是在代码中搞乱控件管理。详情见here
  • 我试过了,但没用

标签: android android-layout android-widget android-spinner android-inflate


【解决方案1】:

在扩展布局时传递 true 以附加到根,就像这样。

View view123 = getLayoutInflater().inflate(R.layout.one2reg, mainLayout,true);

【讨论】:

  • 08-16 13:54:35.535: E/AndroidRuntime(9264): java.lang.RuntimeException: 无法启动活动 ComponentInfo{police.app/police.app.MainReg}: java.lang .IllegalStateException:指定的孩子已经有一个父母。您必须首先在孩子的父母上调用 removeView()。 08-16 13:54:35.535: E/AndroidRuntime(9264): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1970) 08-16 13:54:35.535: E/AndroidRuntime(9264): 在 android. app.ActivityThread.handleLaunchActivity(ActivityThread.java:1995) ..........
  • 对不起.. 我认为您应该删除以下行。 mainLayout.addView(view123);
猜你喜欢
  • 1970-01-01
  • 2012-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多