作者在 2015-07-07 08:25:01 发布以下内容
ContextMenu: 上下文菜单
步骤:
1、 textView1 = (TextView) findViewById(R.id.textView1);
textView2 = (TextView) findViewById(R.id.textView2);
//为控件注册上下文菜单
registerForContextMenu(textView1);
registerForContextMenu(textView2);
2、创建上下文菜单:重写onCreateContextMenu()
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
switch (v.getId()) {
case R.id.textView1:
menu.add(0, 1, 0, "编辑");
menu.add(0, 2, 0, "删除");
break;
case R.id.textView2:
menu.add(0, 3, 0, "设置");
menu.add(0, 4, 0, "取消");
break;
default:
break;
}
}
3、点击事件:重写onContextItemSelected()
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId()) {
case 1:
textView1.setText("编辑");
break;
case 2:
textView1.setText("删除");
break;
case 3:
textView2.setText("设置");
break;
case 4:
textView2.setText("取消");
break;
default:
break;
}
return super.onContextItemSelected(item);
}
选项菜单跟上下文菜单之间的区别:
1、触发方式不一样:
optionmenu:按menu键
contextmenu: 长按控件(触发方式比较隐蔽)
2、显示方式不一样:
optionmenu:界面底部弹出
contextmenu: 界面中间
3、作用范围不一样:
optionmenu:activity
contextmenu:view
4、调用的创建方法以及次数都不一样:
optionmenu: 创建的时候onCreateOptionsMenu()只调用一次
contextmenu:每次弹出的时候onCreateContextMenu()就会被调用
UI控件:
1、checkBox 多选框
作用:实现多选
场景:用于获取一些不需要用户填写的信息。(兴趣爱好)
属性:
XML:android:checked = "true" //设置默认是否选中
code:checkBox对象.setChecked(true) //设置选择
checkBox对象.isChecked() //判断是否选择 返回值:boolean
2、RadioGroup 单选框
如果要实现单选的话,所有radioButton必需在同一个RadioGroup
xml属性:
设置RadioGroup里面radioButton的排列方向
android:orientation="vertical"
code:
RadioGroup group = (RadioGroup) findViewById(R.id.radioGroup1);
//查找被选中的radiobutton
int id = group.getCheckedRadioButtonId();
RadioButton button = (RadioButton) findViewById(id);
设置选择的radiobutton:
button.setChecked(true);
3、ProgressBar 进度条
有进度的进度条
xml:清单
android:max="300" //设置进度的总等分
android:progress="30" //设置当前进度
android:secondaryProgress="100" //设置第二进度
code:代码
mBar.setMax(100);
mBar.setProgress(currenProgress++);
mBar.setSecondaryProgress(currenProgress += 2);
圆形进度条(无进度的进度条)
控件通用属性:
android:visibility="gone"
值:visible 可见
invisible 不可见但是占用空间
gone 不可见也不占用空间
mBar.setVisibility(View.VISIBLE);
SeekBar:
mSeekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
Log.e("SeekBar", "onStopTrackingTouch");
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
Log.e("SeekBar", "onStartTrackingTouch");
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
Log.e("SeekBar", "onProgressChanged:" + progress);
//当进度发生改变的时候就被调用
}
});
RatingBar
xml:
android:numStars="3" //设置星数
android:rating="1.5" //设置被选中的星数
点击事件
ratingBar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {
@Override
public void onRatingChanged(RatingBar ratingBar, float rating,
boolean fromUser) {
Log.e("RatingBar", "onRatingChanged:" + rating);
}
});
code:设置星数:
ratingBar.setRating(float)
//设置ratingbar不可拖拽
android:isIndicator="true"
4、TimePicker & DatePicker
int hour = mTimePicker.getCurrentHour();
int minute = mTimePicker.getCurrentMinute();
int dayOfMonth = mDatePicker.getDayOfMonth();
int month = mDatePicker.getMonth();
int year = mDatePicker.getYear();
StringBuffer buffer = new StringBuffer();
buffer.append(year).append("/").append(month + 1)
.append("/").append(dayOfMonth).append(" ").append(hour)
.append(":").append(minute);
mTextView.setText(buffer.toString());
5、DatePickerDialog
//获取日历对象
Calendar calendar = Calendar.getInstance();
DatePickerDialog datePickerDialog =
new DatePickerDialog(this,
new OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
StringBuffer buffer = new StringBuffer();
buffer.append(year).append("/").append(monthOfYear + 1)
.append("/").append(dayOfMonth);
mTextView.setText(buffer.toString());
}
},
calendar.get(Calendar.YEAR),
calendar.get(Calendar.MONTH),
calendar.get(Calendar.DAY_OF_MONTH));
datePickerDialog.show();
6、TimePickerDialog
//获取日历对象
Calendar calendar = Calendar.getInstance();
TimePickerDialog dialog =
new TimePickerDialog(this,
new OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
StringBuffer buffer = new StringBuffer();
buffer.append(hourOfDay)
.append(":").append(minute);
mTextView.setText(buffer.toString());
}
},
calendar.get(Calendar.HOUR_OF_DAY),
calendar.get(Calendar.MINUTE),
true);