第七章 —高级组件《二》
来源:互联网 发布:c语言的预处理命令 编辑:程序博客网 时间:2024/06/03 17:39
AutoCompleteTextView自动输入文本框
activity_main.xml:<AutoCompleteTextView android:id="@+id/actv" android:layout_width="match_parent" android:layout_height="wrap_content" android:completionThreshold="1" android:dropDownHeight="50dp" android:hint="输入" /> item_actv.xml: <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_launcher" /> <TextView android:id="@+id/tv" android:layout_width="wrap_content" android:layout_height="wrap_content" > </TextView> JAVA代码中: // 数据源 String[] data = { "zhangsan", "lisi", "wangwu", "zhaoliu", "tianqi", "wangba", "xiaojiujiu", "李四", "李五", "李六" }; AutoCompleteTextView actv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 显示 actv = (AutoCompleteTextView) findViewById(R.id.actv); // 适配器 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.item_actv, R.id.tv, data); // 所有需要适配器的view actv.setAdapter(adapter); }
MultiAutoCompleteTextView自动完成文本框
xmlzh:<MultiAutoCompleteTextView android:id="@+id/mactv" android:layout_width="match_parent" android:layout_height="wrap_content" /> JAVA代码中: MultiAutoCompleteTextView mactv; // 数据源 String[] data = { "zhangsan", "lisi", "wangwu", "zhaoliu", "tianqi", "wangba", "xiaojiujiu", "李四" }; ArrayAdapter<String> adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mactv = (MultiAutoCompleteTextView) findViewById(R.id.mactv); adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, data); mactv.setAdapter(adapter); // CommaTokenizer实现好了的 以逗号分隔 mactv.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer()); }
Spinner列表选择框
<Spinner android:id="@+id/spinner" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <string-array name="select"> <item>结婚证</item> <item>身份证</item> <item>军官证</item> <item>单身证</item> </string-array> Spinner spinner; String[] array = { "", "普快", "空调", "特快", "动车", "高铁" }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); spinner = (Spinner) findViewById(R.id.spinner); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, array); spinner.setAdapter(adapter); spinner.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { // position 就是选中的条目,从0开始 String zheng = getResources().getStringArray(R.array.select)[position]; Toast.makeText(getBaseContext(), zheng, Toast.LENGTH_SHORT) .show(); } @Override public void onNothingSelected(AdapterView<?> parent) { // 从没触发过 Log.e("TAG", "------------->>没有选择"); } }); }
网格视图GridView
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/ll1" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <ImageView android:id="@+id/img1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_launcher"/> <TextView android:id="@+id/name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="名称"/> <ImageView android:id="@+id/img2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingRight="20dp" android:src="@drawable/ic_launcher"/> </LinearLayout> <TextView android:id="@+id/jieshao" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="介绍"/> </LinearLayout></RelativeLayout><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.listview.MainActivity" > <ListView android:id="@+id/lv" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" > </ListView></RelativeLayout>import java.util.ArrayList;import java.util.HashMap;import java.util.List;import android.app.Activity;import android.os.Bundle;import android.widget.GridView;import android.widget.SimpleAdapter;public class MainActivity extends Activity { String[] name={"锁定手机","手机杀毒","解锁手机","手机上网"}; String[] jieshao={"专门处理锁定手机相关功能","专门处理手机杀毒相关功能","专门处理解锁手机相关功能","专门处理手机上网相关功能"}; int[] ids={R.drawable.img01,R.drawable.img02,R.drawable.img03,R.drawable.img04}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); GridView spinner = new GridView(this); spinner.setNumColumns(2); setContentView(spinner); List<HashMap<String, Object>> date=new ArrayList<HashMap<String,Object>>(); for (int i = 0; i < 3; i++) { HashMap<String, Object> map=new HashMap<String, Object>(); map.put("id", ids[i]); map.put("name", name[i]); map.put("jieshao", jieshao[i]); date.add(map); } SimpleAdapter sAdapter=new SimpleAdapter(this, date, R.layout.item_setting, new String[] {"id","name","jieshao"}, new int[] {R.id.img1,R.id.name,R.id.jieshao} ); spinner.setAdapter(sAdapter); }}
列表视图ListView
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <ImageView android:id="@+id/img" android:layout_width="80dp" android:layout_height="100dp" android:src="@drawable/ic_launcher" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_toRightOf="@id/img" android:orientation="vertical" android:padding="10dp" > <TextView android:id="@+id/name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="名称" /> <TextView android:id="@+id/content" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="简介" /> </LinearLayout></RelativeLayout><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.listview1.MainActivity" > <ListView android:id="@+id/lv" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" > </ListView></RelativeLayout>import java.util.ArrayList;import java.util.HashMap;import java.util.List;import android.app.Activity;import android.os.Bundle;import android.widget.ListView;import android.widget.SimpleAdapter;public class MainActivity extends Activity { String[] names = { "范冰冰", "李晨", "王宝强" }; String[] contents = { "简介:范冰冰,1981年9月16日生于山东青岛,华语影视女演员、歌手、制片人。", "简介:李晨,1978年11月24日出生于北京市,中国内地影视男演员、监制、赛车手。", "王宝强,1984年5月29日出生于河北省邢台市,中国内地男演员、导演。" }; int[] ids = { R.drawable.fbb, R.drawable.lichen, R.drawable.wangbaoqiang }; ListView lv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lv = (ListView) findViewById(R.id.lv); //创建适配器 List<HashMap<String, Object>> data = new ArrayList<HashMap<String, Object>>(); for (int i = 0; i < 3; i++) { HashMap<String, Object> map = new HashMap<String, Object>(); map.put("img", ids[i]); // R.id.img map.put("name", names[i]);// R.id.name map.put("content", contents[i]);// R.id.content data.add(map); } SimpleAdapter adapter = new SimpleAdapter(this, data, R.layout.item_lv_star, new String[] { "img", "name", "content" }, new int[] { R.id.img, R.id.name, R.id.content }); lv.setAdapter(adapter); }}
BaseAdapter类
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/tv1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="标题" /> <TextView android:id="@+id/tv2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="内容" /></LinearLayout><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.lesson7_baseadapter.MainActivity" > <ListView android:id="@+id/lv" android:layout_width="match_parent" android:layout_height="match_parent" /></RelativeLayout>import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.os.Bundle;import android.widget.ListView;import com.example.lesson7_gridview_baseadapter.R;public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ListView lv = (ListView) findViewById(R.id.lv); // 适配器 ////List<String> list = new ArrayList<String>(); List<Article> list2 = new ArrayList<MainActivity.Article>(); for (int i = 0; i < 100; i++) { ////list.add("条目" + i); list2.add(new Article("标题" + i, "内容" + i)); }// MyBaseAdapter adapter = new MyBaseAdapter(this, list); MyBaseAdapter2 adapter = new MyBaseAdapter2(this, list2); lv.setAdapter(adapter); } public static class Article { String title; String content; public Article(String title, String content) { super(); this.title = title; this.content = content; } }}public class MyBaseAdapter extends BaseAdapter { private List<String> list; private Context context; // 数据源 public MyBaseAdapter(Context context, List<String> list) { this.list = list; this.context = context; } @Override public int getCount() { // 获取多少条 Log.e("TAG", list.size() + "--------------getConut"); return list.size(); } @Override public String getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } // 最重要的方法 @Override public View getView(int position, View convertView, ViewGroup parent) { Log.e("TAG", position + "--------------getView"); // position 代表当前的第几项 // convertView布局重用 // parent父布局 // 一切与布局相关的初始化都需要上下文 // 只有一个组件的时候可能看不出卡 // TextView tv = new TextView(context); // // 设置数据 // tv.setText(getItem(position)); // Log.e("TAG", "---" + (convertView == null)); // 布局重用的固定写法 if (convertView == null) { convertView = new TextView(context); // 口袋 convertView.setTag(position); } TextView tv = (TextView) convertView; tv.setText(getItem(position)); Log.e("TAG", tv.getTag().toString()); return tv; }}public class MyBaseAdapter2 extends BaseAdapter { private Context context; private List<Article> list; public MyBaseAdapter2(Context context, List<Article> list) { this.context = context; this.list = list; } @Override public int getCount() { return list == null ? 0 : list.size(); } @Override public Article getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { convertView = View.inflate(context, R.layout.item_layout, null); holder = new ViewHolder(convertView); convertView.setTag(holder); } else holder = (ViewHolder) convertView.getTag(); holder.setData(list.get(position)); return convertView; } // 对于一个较复杂的布局,组件比较多 class ViewHolder// 保存的是所有的布局上的组件 { TextView title; TextView content; public ViewHolder(View convertView) { title = (TextView) convertView.findViewById(R.id.tv1); content = (TextView) convertView.findViewById(R.id.tv2); // convertView.setTag(this); } public void setData(Article a) { title.setText(a.title); content.setText(a.content); } } // @Override // public View getView(int position, View convertView, ViewGroup parent) { // // 加载布局,考虑布局重用 // if (convertView == null) { // // View的静态方法 加载视图 // convertView = View.inflate(context, R.layout.item_layout, null); // } // // 从一个View中获取他里面的子控件 // TextView title = (TextView) convertView.findViewById(R.id.tv1); // TextView content = (TextView) convertView.findViewById(R.id.tv2); // title.setText(list.get(position).title); // content.setText(list.get(position).content); // // 一定要注意 // return convertView; // }}
0 0
- 第七章 —高级组件《二》
- 第七章—高级组件《三》
- 第七章 —高级组件:拖动条seekBar、星级评分条RatingBar、进度条ProgressBar、滚动视图ScrollView
- 第七章 高级排序
- 第七章 Java高级 API
- UNIX环境高级编程习题——第七章
- 第七章:Android Service组件
- 第七章 React组件API
- 第十章 高级组件
- 第七章 上机二
- 第七章 DOS批处理编程高级技巧
- 高级结构设计 (代码大全 第七章)
- <UNIX环境高级编程>--第七章
- HttpClient学习研究---第七章:高级主题
- JS高级程序设计读书笔记(第七章)
- Javascript高级程序设计 第七章 --- 函数表达式
- SQL高级 第七章 存储过程
- 第七章-面向对象高级编程
- crfsuite安装与配置
- 基于TCP的服务器端/客户端(一)---------网络编程(linux----C)
- 6.3 Swift闭包表达式作为回调函数
- AF大文件断点下载
- matlab---逐步回归
- 第七章 —高级组件《二》
- Java面向对象的概念整理
- 程序员为什么不会修电脑?
- 番茄工作法
- Markdown标记语言
- 在DXP中使用公共参数支持IPC
- Hummer TimeSeries DB (蜂鸟时序数据库)技术介绍
- 合并区间-lintcode
- 【SSLGZ 1624】小萨的烦恼