首页 文章 精选 留言 我的

精选列表

搜索[grid],共1059篇文章
优秀的个人博客,低调大师

上接系出名门Android(8) - 控件(View)之TextSwitcher, Gallery, ImageSwitcher, Grid...

5、ListView 的 Demo main_list_adapter.xml <? xml version ="1.0" encoding ="utf-8" ?> <!-- 自定义列表适配器的 layout--> < LinearLayout xmlns:android ="http://schemas.android.com/apk/res/android" android:orientation ="horizontal" android:layout_width ="fill_parent" android:layout_height ="fill_parent" > < TextView android:id ="@+id/text" android:layout_width ="wrap_content" android:layout_height ="wrap_content" android:textSize ="16sp" > </ TextView > </ LinearLayout > MainListAdapter.java packagecom.webabcd.view; importjava.util.List; importandroid.content.Context; importandroid.view.LayoutInflater; importandroid.view.View; importandroid.view.ViewGroup; importandroid.widget.BaseAdapter; importandroid.widget.TextView; // 继承 BaseAdapter 以实现自定义的列表适配器 public classMainListAdapter extendsBaseAdapter { privateLayoutInflater mInflater; privateList<String> mData; publicMainListAdapter(Context context, List<String> data) { mInflater = LayoutInflater.from(context); mData = data; } @Override public intgetCount() { returnmData.size(); } @Override publicObject getItem( intposition) { returnmData.get(position); } @Override public longgetItemId( intposition) { returnposition; } @Override publicView getView( intposition, View convertView, ViewGroup parent) { TextView text; if(convertView == null) { // 指定一个 layout 作为自定义列表适配器的 layout convertView = mInflater.inflate(R.layout.main_list_adapter, null); text = (TextView) convertView.findViewById(R.id.text); convertView.setTag(text); } else{ text = (TextView) convertView.getTag(); } String mItem = mData.get(position); text.setText(mItem); returnconvertView; } } Main.java packagecom.webabcd.view; importjava.util.ArrayList; importjava.util.List; importandroid.app.ListActivity; importandroid.content.Intent; importandroid.os.Bundle; importandroid.view.View; importandroid.widget.ListView; // 此处要继承 ListActivity ,用以实现 ListView 的功能 public classMain extendsListActivity { privateList<String> mData; /** Called when the activity is first created. */ @Override public voidonCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setTheme(android.R.style.Theme_Light); setContentView(R.layout.main); mData = getData(); // 使用自定义的列表适配器来展现数据 MainListAdapter adapter = newMainListAdapter( this, mData); // 如需使用系统内置的列表适配器,则可以使用类似如下的方法 // ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1, mData); this.setListAdapter(adapter); } // ListView 的数据源 privateList<String> getData(){ List<String> items = newArrayList<String>(); items.add( "TextView"); items.add( "Button"); items.add( "ImageButton"); items.add( "ImageView"); items.add( "CheckBox"); items.add( "RadioButton"); items.add( "AnalogClock"); items.add( "DigitalClock"); items.add( "DatePicker"); items.add( "TimePicker"); items.add( "ToggleButton"); items.add( "EditText"); items.add( "ProgressBar"); items.add( "SeekBar"); items.add( "AutoCompleteTextView"); items.add( "MultiAutoCompleteTextView"); items.add( "ZoomControls"); items.add( "Include"); items.add( "VideoView"); items.add( "WebView"); items.add( "RatingBar"); items.add( "Tab"); items.add( "Spinner"); items.add( "Chronometer"); items.add( "ScrollView"); items.add( "TextSwitcher"); items.add( "ListView"); items.add( "Gallery"); items.add( "ImageSwitcher"); items.add( "GridView"); items.add( "ExpandableList"); returnitems; } // ListView 中某项被选中后的逻辑 @Override protected voidonListItemClick(ListView l, View v, intposition, longid) { Intent intent = newIntent(); intent.setClassName( this, "com.webabcd.view._"+ mData.get(position)); startActivityForResult(intent, 0); } } 6、ExpandableList 的 Demo _ExpandableList.java packagecom.webabcd.view; importandroid.app.ExpandableListActivity; importandroid.os.Bundle; importandroid.view.ContextMenu; importandroid.view.Gravity; importandroid.view.MenuItem; importandroid.view.View; importandroid.view.ViewGroup; importandroid.view.ContextMenu.ContextMenuInfo; importandroid.widget.AbsListView; importandroid.widget.BaseExpandableListAdapter; importandroid.widget.ExpandableListAdapter; importandroid.widget.ExpandableListView; importandroid.widget.TextView; importandroid.widget.Toast; importandroid.widget.ExpandableListView.ExpandableListContextMenuInfo; // ExpandableList - 可展开/收缩列表 // 继承 ExpandableListActivity 以实现列表的可展开/收缩的功能 public class_ExpandableList extendsExpandableListActivity { privateExpandableListAdapter mAdapter; @Override protected voidonCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setTitle( "ExpandableList"); mAdapter = newMyExpandableListAdapter(); setListAdapter(mAdapter); registerForContextMenu( this.getExpandableListView()); } // 为列表的每一项创建上下文菜单(即长按后呼出的菜单) @Override public voidonCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { menu.setHeaderTitle( "ContextMenu"); menu.add(0, 0, 0, "ContextMenu"); } // 单击上下文菜单后的逻辑 @Override public booleanonContextItemSelected(MenuItem item) { ExpandableListContextMenuInfo info = (ExpandableListContextMenuInfo) item.getMenuInfo(); String title = ((TextView) info.targetView).getText().toString(); inttype = ExpandableListView.getPackedPositionType(info.packedPosition); if(type == ExpandableListView.PACKED_POSITION_TYPE_CHILD) { intgroupPos = ExpandableListView.getPackedPositionGroup(info.packedPosition); intchildPos = ExpandableListView.getPackedPositionChild(info.packedPosition); Toast.makeText( this, title + " - Group Index: "+ groupPos + " Child Index: "+ childPos, Toast.LENGTH_SHORT).show(); return true; } else if(type == ExpandableListView.PACKED_POSITION_TYPE_GROUP) { intgroupPos = ExpandableListView.getPackedPositionGroup(info.packedPosition); Toast.makeText( this, title + " - Group Index: "+ groupPos, Toast.LENGTH_SHORT).show(); return true; } return false; } public classMyExpandableListAdapter extendsBaseExpandableListAdapter { // 父列表数据 privateString[] groups = { "group1", "group2", "group3", "group4" }; // 子列表数据 privateString[][] children = { { "child1"}, { "child1", "child2"}, { "child1", "child2", "child3"}, { "child1", "child2", "child3", "child4"} }; @Override publicObject getChild( intgroupPosition, intchildPosition) { returnchildren[groupPosition][childPosition]; } @Override public longgetChildId( intgroupPosition, intchildPosition) { returnchildPosition; } @Override public intgetChildrenCount( intgroupPosition) { returnchildren[groupPosition].length; } // 取子列表中的某一项的 View @Override publicView getChildView( intgroupPosition, intchildPosition, booleanisLastChild, View convertView, ViewGroup parent) { TextView textView = getGenericView(); textView.setText(getChild(groupPosition, childPosition).toString()); returntextView; } @Override publicObject getGroup( intgroupPosition) { returngroups[groupPosition]; } @Override public intgetGroupCount() { returngroups.length; } @Override public longgetGroupId( intgroupPosition) { returngroupPosition; } // 取父列表中的某一项的 View @Override publicView getGroupView( intgroupPosition, booleanisExpanded, View convertView, ViewGroup parent) { TextView textView = getGenericView(); textView.setText(getGroup(groupPosition).toString()); returntextView; } @Override public booleanhasStableIds() { return true; } @Override public booleanisChildSelectable( intgroupPosition, intchildPosition) { return true; } // 获取某一项的 View 的逻辑 privateTextView getGenericView() { AbsListView.LayoutParams lp = newAbsListView.LayoutParams( ViewGroup.LayoutParams.FILL_PARENT, 48); TextView textView = newTextView(_ExpandableList. this); textView.setLayoutParams(lp); textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT); textView.setPadding(32, 0, 0, 0); returntextView; } } } OK [源码下载] 本文转自webabcd 51CTO博客,原文链接:http://blog.51cto.com/webabcd/342089 ,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册