1、ListView基本作用,Adapter绑定数据集合的关键代码
基本作用
- 通过适配器将数据和显示控件绑定
- 支持点击事件,可以用少量代码实现复杂的选择功能
- 显示一个垂直滚动的数据集合
关键代码
1 2 3 4 5 6
| listview=findViewById(R.id.lv); MybaseAdapter mybaseAdapter=new MybaseAdapter(); listView.setAdapter(MybaseAdapter);
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(this,android.R.layaout.simple_list_item_1,listData); listView.setAdapter(arrayAdapter);
|
2、如何监听具有相对连续性值的控件值变化
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| public class MainActivity extends Activity{ private Button btn1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn1 = (Button) findViewById(R.id.button1); btn1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Toast tot = Toast.makeText( MainActivity.this, "button点击事件", Toast.LENGTH_LONG); tot.show(); } }); } }
|
SeekBar
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| public class MainActivity extends Activity { private SeekBar seekBar; private TextView description; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); seekBar=(SeekBar)findViewById(R.id.seekBar); description=(TextView)findViewById(R.id.description); seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override public void onStopTrackingTouch(SeekBar seekBar) { description.setText("拖动停止"); }
@Override public void onStartTrackingTouch(SeekBar seekBar) { description.setText("开始拖动"); }
@Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { description.setText("当前进度:"+progress+"%"); } }); } }
|
RatingBar
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| mRatingBar = (RatingBar)findViewById(R.id.service_grade_ratingBar); mRatingBarLevel = (TextView)findViewById(R.id.service_grade_level);
mRatingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() { @Override public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) { float i = mRatingBar.getRating(); mRatingBarLevel.setText(i + ""); } });
ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() { @Override public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) { } });
|
3、Activity有没有什么生命周期?如有,画出生命周期流程图,并说明每个状态的内容
- 生命周期就是一个对象从创建到销毁的过程,每一个对象都有自己的生命周期。同样,Activity也具有相应的生命周期,Activity的生命周期中分为三种状态,分别是运行状态、暂停状态和停止状态。
- 当Activity在屏幕的最前端时,它是可见的、有焦点的。可以用来处理用户的常见操作,如点击、双击、长按事件等,这种状态称为运行状态。
- 在某些情况下,Activity对用户来说仍然是可见的,但它不再拥有焦点,即用户对它的操作是没有实际意义的。例如,当最上面的Activity没有完全覆盖屏幕或者是透明的,被覆盖的Activity仍然对用户可见,并且存活(它保留着所有的状态和成员信息并保持与Activity管理器的连接)。但当内存不足时,这个暂停状态的Activity可能会被杀死。
- 当Activity完全不可见时,它就处于停止状态,但仍然保留着当前状态和成员信息。然而这些对用户来说都是不可见的,如果当系统内存不足时,这个Activity很容易被杀死。
onCreate()
onStart()
onResume()
onPause()
onStop()
onRestart()
onDestroy()

4、SQL Server\Oracle\HBase\SQLlite\MySQL数据库的特点和区别,说明举例它们的数据查询(或创表)语句
Oracle
甲骨文开发的商业数据库,不开源,支持所有主流平台,性能好,功能强,稳定性好,安全性好,支持大数据量,比较复杂,收费昂贵。
SQL Server
微软开发的商业数据库,只能在 Windows 运行。高性能,系统管理先进,支持Windows图形化管理工具,支持本地和远程的系统管理和配置。强壮的事务处理功能,采用各种方法保证数据的完整性。
MySQL
甲骨文拥有的开源数据库,支持多种操作系统,体积小,功能弱些,简单的操作性能好,复杂的操作性能差些。
SQLite
开源、轻型、无服务器、零配置,一个数据库就只是一个文件,在应用程序内执行操作,占用资源小,可用于嵌入式或小型应用。
HBase(宽表、列式存储、键值对存储、NoSQL、OLTP)
- 基于 Hadoop 的 HDFS 分布式文件系统
- 分布式数据库,需要 ZooKeeper 作为节点间的协调器
- 支持宽表,支持非结构化数据,不需要预定义列和数据类型
- 列式存储,每个 HFile 文件只存储一个列族的数据,一个列族可以有多个 HFile,而 HFile 内部按 Key-Value 格式存储,其中 Key 是 rowkey, column family, column, timestamp 的组合并且按 rowkey 在 HFile 中按序存储,而 value 就是 Column Cell 的值
- 支持海量数据 (千亿级数据表)
- 数据先写入内存,达到阀值再写入磁盘,性能好,占用内存大
- 不支持 SQL,不支持 Join,有自己专用的语句,支持增删改查
- 自动分区、负载均衡、可线性扩展
- 自动故障迁移
- 强一致性 (每个分区 Region 只由一个 Region Server 负责,容易实现强一致性)
SQL语句
1 2 3 4
| create
select <列名1>,<列名2>, from <表名>;
|
9、请使用碎片控件,动态生成碎片界面
1 2 3 4 5
| Fragment <Fragment />
MyFragment myfragment=new MyFragment();
|
Android四大组件
所有布局,特点,标签
Android单击事件
intent实现消息传递
实现页面跳转
消息提示框
Toast.makeText(This.)