0
ArrayAdapter<String> arrayadapter=new 

ArrayAdapter<string>(Sipnner_apActivity.this,android.R.layout.simple_spinner_item,arrarylist);

这里是什么意思,android.R.layout.simple_spinner_item为什么Arrayadapter类属于widget类&为什么不属于“util”类。

谢谢你。

4

2 回答 2

0

R代表“资源”。Android 在 android.R.* 命名空间中内置了资源,而您的应用程序在 your_app_namespace.R.* 命名空间中有资源。

您应该使用资源的原因有很多,但其中一个是支持多种语言和屏幕尺寸。

例如,对于一个活动,您可能有一个名为“helloworld.xml”的布局。Eclipse 将为 your_app_namespace.R.layout.helloworld 生成一个常量值。

这个 helloworld.xml 布局文件将在您的 res/layout 文件夹中。但是,如果您希望 helloworld.xml 在应用程序安装在平板电脑上时看起来有所不同,您可以将 helloworld.xml 的另一个副本放在名为 layout-large 的文件夹中。它将自动选择要使用的 helloworld.xml。

要回答您的问题,android.R.layout.simple_spinner_item是 android 默认具有的布局。如果您只需要一些简单的东西,您就不必为微调器项目创建自己的布局。

ArrayAdapter 不是 util 命名空间的一部分,因为它主要用于小部件。

于 2012-07-11T17:44:38.903 回答
0

这就是 android.R.layout.simple_spinner_item 的样子:

<?xml version="1.0" encoding="utf-8"?>
<!--
/* //device/apps/common/assets/res/any/layout/simple_spinner_item.xml
**
** Copyright 2006, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License"); 
** you may not use this file except in compliance with the License. 
** You may obtain a copy of the License at 
**
**     http://www.apache.org/licenses/LICENSE-2.0 
**
** Unless required by applicable law or agreed to in writing, software 
** distributed under the License is distributed on an "AS IS" BASIS, 
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
** See the License for the specific language governing permissions and 
** limitations under the License.
*/
-->
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/text1"
    style="?android:attr/spinnerItemStyle"
    android:singleLine="true"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ellipsize="marquee" />

它基本上是一个模板,正是一个 TextView 小部件,您的数组列表元素将绑定到它。

通常,适配器是 android ui 工具包中数据源和 UI 组件之间的接口,适配器用于将数据提供给 ui 工具包。

于 2012-07-11T17:45:16.687 回答