Android

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、如何监听具有相对连续性值的控件值变化

Button

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);

//绑定button按钮
btn1 = (Button) findViewById(R.id.button1);

//监听button事件
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()
    Activity流程图

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 />
//第一步创建Fragment对象
MyFragment myfragment=new MyFragment();
//

Android四大组件

所有布局,特点,标签

Android单击事件

intent实现消息传递

实现页面跳转

消息提示框

Toast.makeText(This.)