1. WebView
<uses-permission android:name="android.permission.INTERNET" />
WebView wv = (WebView) findViewById(R.id.web_view);
//支持 JavaScript 腳本
wv.getSettings().setJavaScriptEnabled(true);
//防止跳轉到系統(tǒng)瀏覽器
wv.setWebViewClient(new WebViewClient());
//加載指定網(wǎng)址
wv.loadUrl("http://www.baidu.com");
2. ScrollView
- 能包含一個子控件,若想添加多個控件,可添加一個布局
問題解決:自動顯示到中間位置;
修改父布局屬性
android:focusable="true" android:focusableInTouchMode="true"
3. DataPickerDialog
//日期選擇器
final Calendar calendar = Calendar.getInstance(); //當前日期
DatePickerDialog dialog = new DatePickerDialog(DatePickerDialogActivity.this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int day) {
calendarChoose.set(year,month,day);
String mDay=Integer.toString(day);
if(day<10){ //格式化
mDay="0"+mDay;
}
tv.setText(year + "-" + (month + 1) + "-" + mDay);
} //下方這幾個值為日期選擇器初始值
}, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH));
dialog.show();
注意: month 默認是從0開始算起
4. TimePickerDialog
//時間選擇器
TimePickerDialog timePickerDialog = new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker timePicker, int hourOfDay, int minute) {
String mHour=Integer.toString(hourOfDay) ;
String mMinute=Integer.toString(minute) ;
if(hourOfDay<10){
mHour="0"+hourOfDay;
}
if(minute<10){
mMinute="0"+minute;
}
tv.setText(mHour+":"+mMinute);
}
},0,0,true); //設置初始值 為 00:00
timePickerDialog.show();
5. ViewFlipper
簡單使用: 直接添加ImageView
flipInterval 自動切換時間,
<ViewFlipper
android:id="@+id/viewFilpper"
android:flipInterval="2000"
android:layout_centerHorizontal="true"
android:layout_below="@+id/viewPager"
android:layout_width="200dp"
android:layout_height="200dp">
<ImageView
android:src="@drawable/img1"
android:layout_width="200dp"
android:layout_height="200dp" />
<ImageView
android:src="@drawable/img2"
android:layout_width="200dp"
android:layout_height="200dp" />
<ImageView
android:src="@drawable/img3"
android:layout_width="200dp"
android:layout_height="200dp" />
</ViewFlipper>
ViewFlipper viewFlipper=(ViewFlipper)findViewById(R.id.viewFilpper);
viewFlipper.startFlipping(); //開始
6. ImageView
src屬性和background屬性的區(qū)別
src填入圖片時,是按照圖片的大小直接填充,并不會進行拉伸。
而是用background填入圖片時,則會根據(jù)ImageView給定的寬度來進行拉伸。
7.Spinner
下拉菜單
<Spinner
android:id="@+id/activity_main_spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
設置Adapter
String[] datas={"Item 1","Item 2","Item 3","Item 4","Item 5"};
ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,datas);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
關于 setDropDownViewResource 設置下拉列表項的布局樣式
代碼設置選中項:
spinner.setSelection(2);
選中事件:
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
spinner.getSelectedItem().toString(); //選中項文本
spinner.getSelectedItemId(); //選中項文本
spinner.getSelectedItemPosition(); //選中項位置,從1開始
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
8.AutoCompleteTextView
常用屬性:
| completionThreshoid | 指定用戶輸入多少個字符后才會顯示提示 |
|---|---|
| completionHint | 設置下拉菜單的提示標題 |
| dropDownHeight | 設置下拉菜單的高度 |
| dropDownWidth | 設置下拉菜單的寬度 |
| popuBackground | 設置下拉菜單的背景 |
設置Adapter:
String[] datas={"123","12","11111","1111222","2223333"};
AutoCompleteTextView acTv=(AutoCompleteTextView)findViewById(R.id.activity_test_auto_tv);
ArrayAdapter<String> adapter=
new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line,datas);
acTv.setAdapter(adapter);
9.SeekBar
常用屬性:
| max | 滑動條的最大值 |
|---|---|
| progress | 滑動條的當前值 |
| thumb | 滑塊的drawable |
事件:
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
//進度發(fā)生改變時觸發(fā)
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
tvSeekBarInfo.setText("當前進度值 "+seekBar.getProgress()+"/"+seekBar.getMax());
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) { //按住SeekBar觸發(fā)
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) { //松開SeekBar觸發(fā)
}
});
10.ProgressDialog
progressDialog = new ProgressDialog(mContext);
progressDialog.setCancelable(true); //設置是否可以通過點擊Back取消
progressDialog.setCanceledOnTouchOutside(true);//點擊Dialog外區(qū)域取消顯示Dialog進度條
progressDialog.setMessage(""); //設置顯示的內容
progressDialog.setTitle(""); //設置標題
progressDialog.setIcon(R.mipmap.ic_launcher); //Tittle的圖標,如果設置Title的話Icon是不會顯示的
//ProgressDialog.STYLE_HORIZONTAL 水平進度條
//ProgressDialog.STYLE_SPINNER 圓形進度條
progressDialog.setProgressStyle(STYLE_HORIZONTAL); //設置進度條顯示樣式
progressDialog.setMax(30); //這是進度條最大值
progressDialog.setProgress(1); //設置進度條的進度值
//監(jiān)聽 Dismiss
progressDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
}
});
//設置可點擊的按鈕,默認情況下有三個可選值
//DialogInterface.BUTTON_POSITIVE //確定
//DialogInterface.BUTTON_NEGATIVE //取消
//DialogInterface.BUTTON_NEUTRAL //中立
progressDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "Cancel",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
progressDialog.dismiss();
}
});
11.RadioButton
若果須要實現(xiàn)單選功能,需要報RadioButton放到RadioGroup中,通過RadioGroup的orientation屬性來設置排列方向
獲取選中RadioButton的兩種方式:
RadioGroup rg=(RadioGroup)findViewById(R.id.activity_test_rg); //選中后獲取
rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
RadioButton rbtn=(RadioButton)findViewById(checkedId);
Toast.makeText(TestActivity.this, rbtn.getText(), Toast.LENGTH_SHORT).show();
}
});
//手動獲?。ㄒ簿褪切枰c擊Button,必須有默認選中
RadioGroup rg=(RadioGroup)findViewById(R.id.activity_test_rg);
RadioButton rbtn=(RadioButton)findViewById(rg.getCheckedRadioButtonId());
Toast.makeText(TestActivity.this, rbtn.getText(), Toast.LENGTH_SHORT).show();