原文自:http://android.eoe.cn/topic/ui
给AdapterView绑定数据
AdapterView是ViewGroup的一个子类,它决定view绑定什么类型的数据。AdapterView是非常有用的,只要你想把数据(不是资源文件夹里的Strings或者是drawables)显示在界面上你就会用到它。
Gallery,ListView,Spinner是AdapterVIew子类的实例,你可以给他们绑定特定类型的数据并以某一种方式显示这些数据。
AdapterView类有两方面的作用:
1 把数据填充到界面上
2 处理用户的选择
把数据填充到界面上
把数据显示在界面上通常的做法是把代码里获得的List的数据或者从数据库查询出来的结果集绑定到Adapter上。
比如:
1 创建一个Spinner,绑定数据到ArrayAdapter上
2 创建一个Spinner,绑定数据到SimpleCuisorAdapter上
代码:
// Get a Spinner and bind it to an ArrayAdapter that
// references a String array.
Spinner s1 = (Spinner) findViewById(R.id.spinner1);
ArrayAdapter adapter = ArrayAdapter.createFromResource(
this, R.array.colors, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s1.setAdapter(adapter);
// Load a Spinner and bind it to a data query.
private static String[] PROJECTION = new String[] {
People._ID, People.NAME
};
Spinner s2 = (Spinner) findViewById(R.id.spinner2);
Cursor cur = managedQuery(People.CONTENT_URI, PROJECTION, null, null);
SimpleCursorAdapter adapter2 = new SimpleCursorAdapter(this,
android.R.layout.simple_spinner_item, // Use a template
// that displays a
// text view
cur, // Give the cursor to the list adapter
new String[] {People.NAME}, // Map the NAME column in the
// people database to...
new int[] {android.R.id.text1}); // The "text1" view defined in
// the XML template
adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s2.setAdapter(adapter2);
如果数据发生改变,你需要回调 notifyDataSetChanged(). 自动刷新View上的数据。
处理用户的选择
通过设置AdapterView.OnItemClickListener方法来处理用户的选择某一个位置的列表项
例如代码
// Create a message handling object as an anonymous class.
private OnItemClickListener mMessageClickedHandler = new OnItemClickListener() {
public void onItemClick(AdapterView parent, View v, int position, long id)
{
// Display a messagebox.
Toast.makeText(mContext,"You've got an event",Toast.LENGTH_SHORT).show();
}
};
// Now hook into our object and set its onItemClickListener member
// to our class handler object.
mHistoryView = (ListView)findViewById(R.id.history);
mHistoryView.setOnItemClickListener(mMessageClickedHandler);
相关推荐
个人实现了一个比较简单的AdapterView的实现类,希望能够帮助到大家理解AdapterView的实现。
android studio移动开发基础:adapterview PPT
一个AdapterView工具,仿照Android里面的AdapterView,用于Unity中
在 AdapterView 和 RecyclerView 中通用的 Adapter 和 ViewHolder。RecyclerView 支持 DataBinding 、多种 Item 类型、添加 Header 和 Footer
spProvince = (Spinner)findViewById(R.id.... //绑定数据到Spinner(City)上 spCity.setAdapter(cityAdapter); } @Override public void onNothingSelected(AdapterView<?> parent) { } });
适配器是一个连接数据和AdapterView(ListView就是一个典型的AdapterView,后面还会学习其他的)的桥梁,通过它能有效地实现数据与AdapterView的分离设置,使AdapterView与数据的绑定更加简便,修改更加方便 ...
:person_running:BGABaseAdapter-Android:person_running: 目录 功能介绍 在 AdapterView 和 RecyclerView 中通用的 Adapter 和 ViewHolder。 BGAAdapterViewAdapter 和 BGAViewHolderHelper 用于简化 AdapterView ...
It supports AdapterView(ListView,GridView,etc) and RecyclerView. Dependency compile 'com.barryzhang:temptyview:0.0.1' Usage I. Initialize initialize some custom attributes —— this step is not ...
7、8班:2015.4.7 【实验目的和要求】 1、了解Android编程原理 2、掌握Android基本控件 3、掌握控件的事件处理编程 5、掌握AdapterView控件的编程模式 【实验内容和原理或涉及的知识点】 设计开发简易考勤软件,通过...
1.5 使用Android SDK开发最终用户应用程序 1.5.1 Android模拟器 1.5.2 Android UI 1.5.3 Android基础组件 1.5.4 高级UI概念 1.5.5 Android Service组件 1.5.6 Android媒体和电话组件 1.5.7 ...
import android.widget.AdapterView; import android.widget.EditText; import android.widget.ListView; import android.widget.SimpleCursorAdapter; import android.widget.Toast; public class myMenu extends ...
1.5 使用Android SDK开发最终用户应用程序 1.5.1 Android模拟器 1.5.2 Android UI 1.5.3 Android基础组件 1.5.4 高级UI概念 1.5.5 Android Service组件 1.5.6 Android媒体和电话组件 1.5.7 ...
《Android应用开发I》实验指导书 计算机科学及技术系 目 录 实验一 :第一个应用程序 3 实验二 :基本控件 1 实验三 :高级控件 4 实验四 :菜单和对话框 7 实验五 :数据存储 8 实验六 :后台处理及获取网络数据 9 ...
适用于Android的可缩放ImageView可以在AdapterView和Recyclerview中使用。一个可拉伸拉伸的ImageView,可在AdapterView和RecyclerView中使用。 特征 使用多点触控进行缩放。 可以在AdapterView和Recyclerview中...
listview子项(Item)的取值存在很多问题,常常会因为方法不对而取到空值,或者直接抛空指针异常。对于这些问题,也许你曾和我一样困惑,不过,我相信,你看完我的例子之后可以茅塞顿开。为了照顾新手、菜鸟,本人...
Android天气预报实验报告模板 public class SetCityActivity extends Activity { //定义的一个自动定位的列表 private ListView gpsView; //定义的一个省份可伸缩性的列表 private ExpandableListView ...
AndroidInject 是 Android 注解框架,以简化 Android 开发 目前完成的注解(持续增加中): @AINoTitle: 类注解, 只适用于Activity(需继承于AIActivity), 设置Activity不显示Title @AIFullScreen: 类注解...
import java.util.List;...import android.os.Bundle;import android.app.Activity;import android.content.Intent;import android.view.View;...import android.widget.AdapterView;import android.widget.Adap
package e gallery; import android app Activity; import android os Bundle; import android view LayoutInflater; import android view View;...import android widget AdapterView OnItemSelecte [更多]