第4组UI组件:AdapterView及其子类

ListView:

改变ListView的divider后,必须要设置高度,否则无效。

为ListView添加列表项有两种方式:

1.设置xml属性entries,指定数组资源。该方式可定制性低,不能改变条目中内容的外观、行为,优势是方便快捷。

2.使用Adapter控制列表条目。该方式可定制性高。


ArrayAdapter:

使用ArrayAdapter作为适配器时,在生成ArrayAdapter对象时,第二个参数列表项布局中只能有一个TextView


BaseAdapter:

使用BaseAdapter不用新建列表项布局文件。


GridView:

使用GridView时一般都应该指定numColumns大于1,否则默认为1列。


ExpandableListView:

ExpandableListView默认没有子项分割线且子项不可点击,但是重写isChildSelectable()方法设置为可点击后子项分割线即可显示出来,且子项可点击。

childIndicator以及groupIndicator属性会导致所有组项或所有子项之前的Drawable对象相同。


Spinner:

Spinner的prompt属性能设置列表选择框的提示信息,但只有将Spinner的style属性设置为"@android:style/Widget.Spinner"之后才能显示出来。

style="@android:style/Widget.Spinner"

HorizontalScrollView:





ListViewAndroid中最常用的UI组件之一,用于展示具有固定结构的大量数据。它继承自AdapterView,可以通过Adapter来动态地显示数据。 ListView的特点是:每一行数据都是相同的布局,并且每个Item的高度是相同的。因此,我们可以利用ListView来展示一些比较简单的数据列表。 在使用ListView时,我们需要实现一个Adapter来提供数据,并且可以对ListView的Item进行自定义布局。以下是一个简单的使用ListView的例: ```java public class MainActivity extends AppCompatActivity { private ListView mListView; private List<String> mDataList; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mListView = findViewById(R.id.list_view); // 初始化数据 mDataList = new ArrayList<>(); for (int i = 0; i < 50; i++) { mDataList.add("Item " + i); } // 创建适配器 ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, mDataList); // 设置适配器 mListView.setAdapter(adapter); } } ``` 在这个例中,我们使用了Android自带的ArrayAdapter作为ListView的适配器,并且使用了系统提供的简单列表项布局simple_list_item_1,将数据逐一展示在ListView中。 除了普通的ListViewAndroid还提供了一个ListActivity,它是一个已经封装好的Activity,专门用来展示ListView。我们只需要继承ListActivity,实现一个适配器即可。以下是一个使用ListActivity的例: ```java public class MainActivity extends ListActivity { private List<String> mDataList; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 初始化数据 mDataList = new ArrayList<>(); for (int i = 0; i < 50; i++) { mDataList.add("Item " + i); } // 创建适配器 ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, mDataList); // 设置适配器 setListAdapter(adapter); } } ``` 在这个例中,我们继承了ListActivity,并且在onCreate()方法中直接使用setListAdapter()方法设置适配器,省去了findViewById()和ListView的初始化过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值