在做Spinner的效果时,发现很给出的ArrayAdapter的构造方法中有一个:
public ArrayAdapter (Context context, int textViewResourceId, T[] objects)
Since:
API Level 1
Constructor
Parameters
context | The current context. |
---|---|
textViewResourceId | The resource ID for a layout file containing a TextView to use when instantiating views. |
objects | The objects to represent in the ListView. |
private AutoCompleteTextView autoCompleteTextView;
String[] books = new String[]{"疯狂java讲义","疯狂ajax讲义","疯狂javascripy讲义","疯狂strut22讲义"};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.textview);
autoCompleteTextView = (AutoCompleteTextView)this.findViewById(R.id.autotext);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line,books);
autoCompleteTextView.setAdapter(adapter);
}
如上述代码,用的时候突然发现R.layout.simple_dropdown_item_1line,这种布局文件是干什么用的?首先从android.R.layout可以看出它是一个layout资源,故直接进入E:\Java\android-sdk-windows\platforms\android-8\data\res\layout(我选的开发版本是android2.2,其API Version是8,故选android-8目录),找到simple_dropdown_item_1line.xml;
<?xml version="1.0" encoding="utf-8"?>
<!--
/* //device/apps/common/assets/res/any/layout/simple_spinner_item.xml
**
** Copyright 2008, 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/dropDownItemStyle"
android:textAppearance="?android:attr/textAppearanceLargeInverse"
android:singleLine="true"
android:layout_width="match_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:ellipsize="marquee" />
再进入E:\Java\android-sdk-windows\platforms\android-8\data\res\values找到attr.xml文件,可以看出此TextView的样式是dropDownItemStyle即默认的下拉条目样式;文本外观是textAppearanceLargeInverse即大反差文本。
<!-- Default style for drop down items. -->
<attr name="dropDownItemStyle" format="reference" />
<!-- Default style for spinner drop down items. -->
<attr name="spinnerDropDownItemStyle" format="reference" />