android基础知识
来源:互联网 发布:杭州行知小学 孙杨 编辑:程序博客网 时间:2024/06/01 08:30
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button=(Button)findViewById(R.id.button1); //先要找到button
button.setOnClickListener(new OnClickListener(){ //对button设置点击事件
@Override
public void onClick(View v){
System.out.println("button发生点击了! !");
}
});
}
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button1=(Button) findViewById(R.id.button1);
Button button2=(Button) findViewById(R.id.button2);
Button button3=(Button) findViewById(R.id.button3);
button1.setOnClickListener(myListener);
button2.setOnClickListener(myListener);
button3.setOnClickListener(myListener);
}
private View.OnClickListener myListener=new OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button1:
Toast.makeText(MainActivity.this,"button1被点击了。。。。",Toast.LENGTH_SHORT).show(); //Toast.LENGTH_SHORT表示2秒
break;
case R.id.button2:
Toast.makeText(MainActivity.this,"button2被点击了。。。。",Toast.LENGTH_SHORT).show();
break;
case R.id.button3:
Toast.makeText(MainActivity.this,"button3被点击了。。。。",Toast.LENGTH_SHORT).show();
break;
}
}
};
UI组件都是建立在View和ViewGroup这两个类的基础之上,View的子类称为“widget”,所有的ViewGroup的子类称为“Layout
ListView:是一个布局控件(ViewGroup),可垂直滚动,在ListView中显示的元素需要一个适配器(adapter)进行包装
android:divider="#345" //对边框的颜色进行设置
android:dividerHeight="6dp" //对边框的高度进行设置
适配器有:
基本数据适配器(BaseAdapter):需要自己重写方法
简单适配器(SimpleAdapter):功能强大
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView listView=(ListView) findViewById(R.id.listView1); //找到ListView组件
List<Map<String,String>> data=new ArrayList<Map<String,String>>();
for(int i=0;i<10;i++){
Map<String,String> map=new HashMap<String,String>();
map.put("name", "gao"+i);
map.put("phone", "1232131");
map.put("age", "123");
data.add(map);
}
SimpleAdapter adapter=new SimpleAdapter(this,
data,
R.layout.user_item,
new String[]{"age","phone","name"},
new int[]{R.id.textView1,R.id.textView2,R.id.textView3});
/*第一个参数(contest):连接上下文
* 第二个参数(data):要求输入一个固定格式的集合,List<Map<String,Object>>
* 第三个参数(resource):一个layout布局的引索 R.layout.user_item
* 第四个参数(from):new String[]{}
* 第五个参数(to):new int[]{}
*/
listView.setAdapter(adapter);
}
数据库适配器(SimpleCursorAdapter)
数组适配器(ArrayAdapter):展示简单文本
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ListView listView=(ListView) findViewById(R.id.listView1);
ArrayAdapter<String> adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, ss); //数组适配器(ArrayAdapter)
ViewGroup group=(ViewGroup) getLayoutInflater().inflate(R.layout.footer, null);
Button button=(Button) group.findViewById(R.id.button1);
final EditText editText=(EditText) group.findViewById(R.id.editText1);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String indexString=editText.getText().toString();
listView.setSelection(Integer.valueOf(indexString));
}
});
listView.addHeaderView(group);
listView.setAdapter(adapter);
}
spinner:下拉列表
<Spinner
android:spinnerMode="dialog" //若不改,则默认为dropdown
/>
(1)数据不可更改
<string-array name="spinner_data">
<item >山西</item>
<item >陕西</item>
<item >江西</item>
</string-array>
<Spinner
android:entries="@array/spinner_data"
android:spinnerMode="dialog"
/>
(2)数据是动态的,可更改
Adapter:适配器模式
public class MainActivity extends Activity {
private String[] ss=new String[]{
"北京",
"上海",
"深圳"
};
private List<String> list=new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
list.add("java");
list.add("C++");
list.add("php");
Spinner spinner=(Spinner) findViewById(R.id.spinner1);
BaseAdapter adapter=new MyAdapter();
spinner.setAdapter(adapter);
}
private class MyAdapter extends BaseAdapter{
@Override
public int getCount() {
return list.size(); //return ss.length;
}
@Override
public Object getItem(int arg0) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView textView=new TextView(MainActivity.this);
textView.setText(list.get(position)); //textView.setText(ss[position]);
return textView;
}
}
}
(3)用ArrayAdapter
private String[] ss=new String[]{
"北京",
"上海",
"深圳"
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Spinner spinner=(Spinner) findViewById(R.id.spinner1);
ArrayAdapter<String> adapter=new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, ss);
spinner.setAdapter(adapter);
}
(4)Display Views 显示图片的View,例如Galley,ImageSwitcher.
Galley:
public class MainActivity extends Activity {
private int[] images=new int[]{
R.drawable.a1,
R.drawable.a2,
R.drawable.a3,
R.drawable.a4,
R.drawable.a5,
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Gallery gallery=(Gallery) findViewById(R.id.gallery1);
final ImageView imageView=(ImageView) findViewById(R.id.imageView1);
MyAdapter adapter=new MyAdapter(images, this);
gallery.setAdapter(adapter);
gallery.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position,long arg3) {
imageView.setImageResource(images[position]);
}
});
}
private class MyAdapter extends BaseAdapter{
private int[] images;
private Context context;
public MyAdapter(int[]images,Context context){
super();
this.images=images;
this.context=context;
}
@Override
public int getCount() {
return images.length;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView=new ImageView(context);
imageView.setLayoutParams(new Gallery.LayoutParams(120, 120));
imageView.setImageResource(images[position]);
return imageView;
}
}
在MainActivity中使图片进行翻阅
private int[] a=new int[]{
R.drawable.a1,
R.drawable.a2,
R.drawable.a3,
R.drawable.a4
};
ImageView imageView=(ImageView) findViewById(R.id.imageView1);
final int width=this.getWindowManager().getDefaultDisplay().getWidth(); //获取屏幕的宽度
imageView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
int x=(int) event.getX(); //在图片点击的过程中,获得点击X轴坐标
ImageView view =(ImageView) v;
if(x>=(width/2)){
//右侧
if(count==3){
count=-1;
}
view.setImageResource(a[++count]);
}else{
//左侧
if(count==0){
count=3;
}
view.setImageResource(a[--count]);
}
return false;
}
});
(5)Menus 显示额外的和上下菜单项目的View
(6)Additional Views 其他的View,例如AnalogClock,DigitalClock
scrollView是一个单帧布局,scrollView滚动视图是指当拥有很多内容,屏幕显示不完时,需要通过滚动条来显示的视图,只支持垂直的滚动。
HorizontalscrollView可支持水平的滚动。
19.UI组件之网格布局组件GridView
可使用表格的方式显示组件,可滚动的控件
@Overridepublic void onCheckedChanged(RadioGroup group, int checkedId) {
RadioButton button=(RadioButton) group.findViewById(checkedId);
Toast.makeText(getApplicationContext(), (String)button.getTag(), 0).show();
}
});
}
(3)List Views 显示大量项目的View,例如ListView,spinner.
ListView:是一个布局控件(ViewGroup),可垂直滚动,在ListView中显示的元素需要一个适配器(adapter)进行包装
android:divider="#345" //对边框的颜色进行设置
android:dividerHeight="6dp" //对边框的高度进行设置
适配器有:
基本数据适配器(BaseAdapter):需要自己重写方法
简单适配器(SimpleAdapter):功能强大
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView listView=(ListView) findViewById(R.id.listView1); //找到ListView组件
List<Map<String,String>> data=new ArrayList<Map<String,String>>();
for(int i=0;i<10;i++){
Map<String,String> map=new HashMap<String,String>();
map.put("name", "gao"+i);
map.put("phone", "1232131");
map.put("age", "123");
data.add(map);
}
SimpleAdapter adapter=new SimpleAdapter(this,
data,
R.layout.user_item,
new String[]{"age","phone","name"},
new int[]{R.id.textView1,R.id.textView2,R.id.textView3});
/*第一个参数(contest):连接上下文
* 第二个参数(data):要求输入一个固定格式的集合,List<Map<String,Object>>
* 第三个参数(resource):一个layout布局的引索 R.layout.user_item
* 第四个参数(from):new String[]{}
* 第五个参数(to):new int[]{}
*/
listView.setAdapter(adapter);
}
数据库适配器(SimpleCursorAdapter)
数组适配器(ArrayAdapter):展示简单文本
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ListView listView=(ListView) findViewById(R.id.listView1);
ArrayAdapter<String> adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, ss); //数组适配器(ArrayAdapter)
ViewGroup group=(ViewGroup) getLayoutInflater().inflate(R.layout.footer, null);
Button button=(Button) group.findViewById(R.id.button1);
final EditText editText=(EditText) group.findViewById(R.id.editText1);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String indexString=editText.getText().toString();
listView.setSelection(Integer.valueOf(indexString));
}
});
listView.addHeaderView(group);
listView.setAdapter(adapter);
}
spinner:下拉列表
<Spinner
android:spinnerMode="dialog" //若不改,则默认为dropdown
/>
(1)数据不可更改
<string-array name="spinner_data">
<item >山西</item>
<item >陕西</item>
<item >江西</item>
</string-array>
<Spinner
android:entries="@array/spinner_data"
android:spinnerMode="dialog"
/>
(2)数据是动态的,可更改
Adapter:适配器模式
public class MainActivity extends Activity {
private String[] ss=new String[]{
"北京",
"上海",
"深圳"
};
private List<String> list=new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
list.add("java");
list.add("C++");
list.add("php");
Spinner spinner=(Spinner) findViewById(R.id.spinner1);
BaseAdapter adapter=new MyAdapter();
spinner.setAdapter(adapter);
}
private class MyAdapter extends BaseAdapter{
@Override
public int getCount() {
return list.size(); //return ss.length;
}
@Override
public Object getItem(int arg0) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView textView=new TextView(MainActivity.this);
textView.setText(list.get(position)); //textView.setText(ss[position]);
return textView;
}
}
}
(3)用ArrayAdapter
private String[] ss=new String[]{
"北京",
"上海",
"深圳"
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Spinner spinner=(Spinner) findViewById(R.id.spinner1);
ArrayAdapter<String> adapter=new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, ss);
spinner.setAdapter(adapter);
}
(4)Display Views 显示图片的View,例如Galley,ImageSwitcher.
Galley:
public class MainActivity extends Activity {
private int[] images=new int[]{
R.drawable.a1,
R.drawable.a2,
R.drawable.a3,
R.drawable.a4,
R.drawable.a5,
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Gallery gallery=(Gallery) findViewById(R.id.gallery1);
final ImageView imageView=(ImageView) findViewById(R.id.imageView1);
MyAdapter adapter=new MyAdapter(images, this);
gallery.setAdapter(adapter);
gallery.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position,long arg3) {
imageView.setImageResource(images[position]);
}
});
}
private class MyAdapter extends BaseAdapter{
private int[] images;
private Context context;
public MyAdapter(int[]images,Context context){
super();
this.images=images;
this.context=context;
}
@Override
public int getCount() {
return images.length;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView=new ImageView(context);
imageView.setLayoutParams(new Gallery.LayoutParams(120, 120));
imageView.setImageResource(images[position]);
return imageView;
}
}
在MainActivity中使图片进行翻阅
private int[] a=new int[]{
R.drawable.a1,
R.drawable.a2,
R.drawable.a3,
R.drawable.a4
};
ImageView imageView=(ImageView) findViewById(R.id.imageView1);
final int width=this.getWindowManager().getDefaultDisplay().getWidth(); //获取屏幕的宽度
imageView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
int x=(int) event.getX(); //在图片点击的过程中,获得点击X轴坐标
ImageView view =(ImageView) v;
if(x>=(width/2)){
//右侧
if(count==3){
count=-1;
}
view.setImageResource(a[++count]);
}else{
//左侧
if(count==0){
count=3;
}
view.setImageResource(a[--count]);
}
return false;
}
});
(5)Menus 显示额外的和上下菜单项目的View
(6)Additional Views 其他的View,例如AnalogClock,DigitalClock
- Android 基础知识
- Android基础知识
- Android基础知识
- Android基础知识
- Android基础知识
- android 基础知识
- Android基础知识
- android基础知识
- android基础知识
- android基础知识
- Android基础知识
- android基础知识
- android基础知识
- Android基础知识
- android 基础知识
- android基础知识
- Android基础知识
- android 基础知识
- VMWare安装Ubuntu 12.04无法开启虚拟机的Unity Mode模式
- Android ActionBar完全解析,使用官方推荐的最佳导航栏(上)
- Python高级特性:私有属性
- 编程之美 格格取数 C语言版本
- 阿! ! ! ! !暗能量守恒定律
- android基础知识
- KVM虚拟机IO处理过程(二) ----QEMU/KVM I/O 处理过程
- Emacs 降魔系列之制作 Python IDE
- #290 (div.2) B. Fox And Two Dots
- Android四大组件及其生命周期详解
- mongodb系列之六:java聚合函数
- T001-UT001-0016
- JS函数调用、修改全局变量的知识
- 言论字面意思记忆