1.编辑框EditText
public class MainActivity extends Activity {
EditText et; //声明EditText控件
private Boolean isEmpty = true;//表明文本框是否为空
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et = (EditText)findViewById(R.id.et);//找到ID为tv的EditText
//监听控件的焦点改变事件
et.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
//获取触发事件的EditText
EditText clickEditText = (EditText)v;
if(hasFocus == false){//EditText失去焦点
String text = clickEditText.getText().toString().trim();
if(null != text && text.length() > 0 && !"请输入您的名字".equals(text)){
isEmpty = false;//表明此时文本框不为空
clickEditText.setTextColor(Color.BLACK);
clickEditText.setText(text);
}else{
clickEditText.setText("请输入您的名字");
clickEditText.setTextColor(Color.GRAY);
isEmpty = true;
}
}else{//如果获得焦点
clickEditText.setTextColor(Color.BLACK);
if(isEmpty){//如果控件处于未编辑状态,则清空“请输入您的名字”这几个字
clickEditText.setText("");
}
}
}
});
//编辑框监控有新字符输入
et.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
EditText clickEditText = (EditText)v;//获取触发事件的EditText
String text = clickEditText.getText().toString().trim();//获取当前文本
if(null != text && text.length() == 10){
Toast.makeText(MainActivity.this, "最大长度为10个字符", Toast.LENGTH_SHORT).show();// 提示用户
}
return false;
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
2.自动完成文本框AutoCompleteTextView 和 MultiAutoCompleteTextView
public class AtyUsingAutoCompleteTextView extends Activity
{
private AutoCompleteTextView actv;
private ArrayAdapter<String> actvAdapter,mactvAdapter;
private MultiAutoCompleteTextView mactv;
private String [] strs = new String[]{"hello","world"};
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.aty_usingautocomplete);
actvAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, strs);
actv = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView);
actv.setAdapter(actvAdapter);
mactv = (MultiAutoCompleteTextView) findViewById(R.id.multiAutoCompleteTextView);
mactvAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, strs);
mactv.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
mactv.setAdapter(mactvAdapter);
}
}
3.复选按钮CheckBox
public class AtyUsingCheckBox extends Activity
{
private CheckBox cbYes,cbNo;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.aty_using_checkbox);
cbYes = (CheckBox) findViewById(R.id.checkBox1);
cbNo = (CheckBox) findViewById(R.id.checkBox2);
findViewById(R.id.btnSumit).setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
String str = "questionanwer:\n";
if (cbYes.isChecked())
{
str+="Yes\n";
}
if (cbNo.isChecked())
{
str+="No\n";
}
new AlertDialog.Builder(AtyUsingCheckBox.this).setTitle("结果").setMessage(str).setPositiveButton("关闭", null).show();
}
});
}
}
4.DataPicker
public class AtyUsingDataPicker extends Activity
{
private Button btnSelectTime;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.using_datapicker);
btnSelectTime = (Button) findViewById(R.id.btnSelectTime);
btnSelectTime.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
new DatePickerDialog(AtyUsingDataPicker.this, new OnDateSetListener()
{
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth)
{
btnSelectTime.setText(String.format("%d:%d:%d", year,monthOfYear,dayOfMonth));
}
}, 2015, 7, 30).show();
}
});
}
}
5.TimePicker
public class AtyUsingTimePicker extends Activity
{
private Button btnSelectTimer;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.aty_using_timepicker);
btnSelectTimer = (Button) findViewById(R.id.btnSelectTimer);
btnSelectTimer.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
new TimePickerDialog(AtyUsingTimePicker.this, new OnTimeSetListener()
{
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute)
{
btnSelectTimer.setText(String.format("%s:%s", timeFormat(hourOfDay),timeFormat(minute)));
}
}, 10, 0, true).show();
}
});
}
public String timeFormat(int value)
{
return value>=10?""+value:"0"+value;
}
}
6.Gallery
public class AtyUsingGallery extends Activity
{
private Gallery gallery;
private ArrayAdapter<String> adapter;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.aty_usinggallery);
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);
for (int i = 0; i < 20; i++)
{
adapter.add("No"+i);
}
gallery = (Gallery) findViewById(R.id.gallery1);
gallery.setAdapter(adapter);
}
}
7.GridView
public class AtyUsingGridView extends Activity
{
private GridView gridview;
private ArrayAdapter<String> adapter;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.aty_usinggridview);
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);
gridview = (GridView) findViewById(R.id.gridView);
gridview.setAdapter(adapter);
for (int i = 0; i < 60; i++)
{
adapter.add("No."+i);
}
}
}
8.ImageSwitcher
ImageSwitcher和ImageView的优势就是动画的效果。
public class AtyUsingImageSwitcher extends Activity
{
private ImageSwitcher imageSwitcher;
private boolean showImg1 = true;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.aty_usingimageswitcher);
imageSwitcher = (ImageSwitcher) findViewById(R.id.imageSwitcher1);
imageSwitcher.setFactory(new ViewFactory()
{
@Override
public View makeView()
{
return new ImageView(AtyUsingImageSwitcher.this);
}
});
imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(AtyUsingImageSwitcher.this, android.R.anim.fade_in));
imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(AtyUsingImageSwitcher.this, android.R.anim.fade_out));
imageSwitcher.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
showImg1 = !showImg1;
showCurrentImage();
}
});
showCurrentImage();
}
private void showCurrentImage()
{
if (showImg1)
{
imageSwitcher.setImageResource(R.drawable.ic1);
}
else {
imageSwitcher.setImageResource(R.drawable.ic2);
}
}
}
9.ProgressBar
public class AtyUsingProgressBar extends Activity
{
private ProgressBar pb;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.aty_usingprogressbar);
pb = (ProgressBar) findViewById(R.id.progressBar);
pb.setMax(100); //设置进度条最大值
pb.setProgress(50); //设置进度条的进度值
}
@Override
protected void onResume()
{
super.onResume();
startTimer();
}
@Override
protected void onPause()
{
super.onPause();
stopTimer();
}
private Timer timer = null;
private TimerTask task = null;
private int progress = 0;
public void startTimer()
{
if (timer == null)
{
timer = new Timer();
task = new TimerTask()
{
@Override
public void run()
{
progress++;
pb.setProgress(progress);
}
};
timer.schedule(task, 1000, 1000);
}
}
public void stopTimer()
{
if (timer != null)
{
task.cancel();
timer.cancel();
task = null;
timer = null;
}
}
}
10.ProgressDialog
public class AtyUsingProgressDialog extends Activity
{
private ProgressDialog progressDialog;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.aty_using_progressdialog);
findViewById(R.id.btnShowProgressDialog).setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
progressDialog = ProgressDialog.show(AtyUsingProgressDialog.this, "加载中", "正在加载");
new Thread()
{
public void run()
{
try
{
Thread.sleep(3000);
progressDialog.dismiss();
} catch (InterruptedException e)
{
e.printStackTrace();
}
};
}.start();
}
});
}
}
11.RadioGroup
public class AtyUsingRadioGroup extends Activity
{
private RadioButton radioRight;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.aty_using_radiogroup);
radioRight = (RadioButton) findViewById(R.id.radioRight);
findViewById(R.id.btnSubmit).setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
if (radioRight.isChecked())
{
new AlertDialog.Builder(AtyUsingRadioGroup.this).setTitle("判断").setMessage("回答正确").setPositiveButton("关闭", null).show();
}
else {
new AlertDialog.Builder(AtyUsingRadioGroup.this).setTitle("判断").setMessage("回答错误").setPositiveButton("关闭", null).show();
}
}
});
}
}
12.RatingBar
public class AtyUsingRatingBar extends Activity
{
private RatingBar ratingBar;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.ratingbar);
ratingBar = (RatingBar) findViewById(R.id.ratingBar1);
ratingBar.setOnRatingBarChangeListener(new OnRatingBarChangeListener()
{
@Override
public void onRatingChanged(RatingBar ratingBar, float rating,
boolean fromUser)
{
Toast.makeText(AtyUsingRatingBar.this, "评价为"+rating, Toast.LENGTH_SHORT).show();
}
});
}
}
13.拖动条SeekBar
public class AtyUsingSeekBar extends Activity
{
private SeekBar seekBar;
private TextView tvout;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.aty_usingseekbar);
tvout = (TextView) findViewById(R.id.tvout);
seekBar = (SeekBar) findViewById(R.id.seekBar);
seekBar.setMax(100);
seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener()
{
@Override
public void onStopTrackingTouch(SeekBar seekBar)
{
}
@Override
public void onStartTrackingTouch(SeekBar seekBar)
{
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser)
{
tvout.setText(String.format("当前进度为:%d", progress)+"%");
}
});
}
}
14.下拉列表Spinner
public class AtyUsingSpinner extends Activity
{
private Spinner spinner;
private ArrayAdapter<String> adapter;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.aty_usingspinner);
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item);
adapter.add("hello");
adapter.add("world");
spinner = (Spinner) findViewById(R.id.spinner);
spinner.setAdapter(adapter);
}
}