学校网站开发,seo白帽优化,三亚官方网站建设,智慧政务门户网站建设Android中的列表空间非常灵活#xff0c;可以自定义每一个列表项#xff0c;实际上每一个列表项就是一个View#xff0c;在Android定义了3个列表控件#xff1a;ListView、ExpandableListView和Spinner#xff0c;其中Spinner就是在Windows中常见的下拉列表框。ListView控…Android中的列表空间非常灵活可以自定义每一个列表项实际上每一个列表项就是一个View在Android定义了3个列表控件ListView、ExpandableListView和Spinner其中Spinner就是在Windows中常见的下拉列表框。ListView控件用于列表的形式显示数据ListView控件采用MVC模式将前端显示和后端数据进行分离。也就是说ListView控件在装载数据时并不是直接使用ListView.add或者类似的方法添加数据而是需要指定一个Adapter对象。该对象相当于MVC模式中的C(控制器Controller)。ListView提供数据的List或数组相当于MVC模式中的M(模型Model)在ListView控件中通过Adapter对象获得需要显示的数据在创建Adapter对象时需要指定要显示的数据(List或数组对象)因此要显示的数据与ListView之间通过Adapter对象进行连接同事又互相独立也就是说ListView只知道显示的数据来自Adapter并不知道这些数据来自List还是数组。MVC好处MVC把应用程序的逻辑与界面是完全分开的最大的好处是界面设计人员可以直接参与到界面的开发程序员就可以把精力放在逻辑层上。而不是像以前那样设计人员把所有的材料交给开发人员由开发人员来实现界面。在Eclipse工具中开发Android采用了更加简单的方法设计人员在Androidraw中设计界面以xml方式保存在Eclipse中直接打开就可以看到设计人员的设计界面逻辑处理的代码放在src文件夹下让程序员更专注与业务。1.视图层(View)一般采用XML文件进行描述使用的时候可以非常方便的引入。同时方便于后期的界面的修改。逻辑中与界面对应的id不变化则代码不用修改大大增强了代码的可维护性。2.控制层(controller):Android的控制层的重任通常落在众多的Activity的肩上这句话也就暗含了不要在Activity中写代码要通过Activity交割Model业务逻辑层处理这样做的另外一个原因是Android中的Activity的响应时间是5s如果耗时的操作放在这里程序很容易被回收掉。3.模型层(Model)对数据库的操作、对网络等的操作都应该在Model里面处理当然对业务计算等操作也是必须放在该层的。就是应用程序中的二进制的数据。一、建立工程如图二、activity_main.xml中代码android:idid/listviewandroid:layout_widthfill_parentandroid:layout_heightfill_parentView Code三、MyDataSource.java中代码packagecom.study.listview;importjava.util.ArrayList;importjava.util.List;public classMyDataSource {publicMyDataSource(){}public static ListgetDataSource(){List list new ArrayList();list.add(北京);list.add(上海);list.add(广州);list.add(贵州);list.add(海南);list.add(重庆);list.add(湖南);returnlist;}}View Code四、MainActivity.java中代码packagecom.study.listview;importjava.util.List;importandroid.os.Bundle;importandroid.app.Activity;importandroid.view.Menu;importandroid.view.View;importandroid.widget.AdapterView;importandroid.widget.ArrayAdapter;importandroid.widget.ListView;importandroid.widget.Toast;//ListView普通列表空间的使用public class MainActivity extendsActivity {privateListView listView;private ArrayAdapteradapter;private List data null; //表示数据源Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);dataMyDataSource.getDataSource();listView (ListView)this.findViewById(R.id.listview);//adapter new ArrayAdapter(MainActivity.this, android.R.layout.simple_list_item_1,data);adapter new ArrayAdapter(MainActivity.this, android.R.layout.simple_list_item_multiple_choice,data);//1 adapter new ArrayAdapter(MainActivity.this, android.R.layout.simple_list_item_single_choice,data);//1 listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);listView.setChoiceMode(listView.CHOICE_MODE_MULTIPLE);listView.setAdapter(adapter);listView.setOnItemLongClickListener(newAdapterView.OnItemLongClickListener() {Overridepublic boolean onItemLongClick(AdapterViewarg0, View arg1,int arg2, longarg3) {Toast.makeText(MainActivity.this, arg2 arg2 ,arg3 arg3, 1).show();return false;}});}Overridepublic booleanonCreateOptionsMenu(Menu menu) {//Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}View Code五、效果图