文章目录
- 1、下拉列表
- 2、日期选择器
- 3、时间选择器
- 4、单项选择
- 5、多项选择
- 6、TextView、EditView、Button、ImageView
- 7、ProgressBar(进度条)
- 8、AlertDialog
1、下拉列表
如何创建下拉列表、如何为下拉列表适配数据源,以及如何侦听下拉列表的选择事件
布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Spinner
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
java类文件:
public class MainActivity extends AppCompatActivity {
private Spinner s;
private String[] dataSource = new String[]{"lala","jjj","uuuu"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
s = (Spinner)findViewById(R.id.spinner);
//为下拉列表适配数据源
s.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_expandable_list_item_1,dataSource));
//侦听下拉列表的选择事件
s.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
System.out.println("用户选择的是:"+dataSource[position]);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
}
2、日期选择器
布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".ChooseADate">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0000-00-00"
android:id="@+id/btnChooseDate"
/>
</LinearLayout>
java类文件:
public class ChooseADate extends AppCompatActivity {
private Button btnChooseDate;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_choose_adate);
btnChooseDate = (Button)findViewById(R.id.btnChooseDate);
btnChooseDate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new DatePickerDialog(ChooseADate.this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
String theDate = String.format("%d-%d-%d",year,month+1,dayOfMonth);
btnChooseDate.setText(theDate);
System.out.println(theDate);
}
},2015,1,2).show();
}
});
}
}
3、时间选择器
关键代码:
btnChooseTime.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new TimePickerDialog(ChooseTime.this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
System.out.println("执行了");
String theTime = String.format("%d:%d",hourOfDay,minute);
System.out.println(theTime);
btnChooseTime.setText(theTime);
}
},0,0,true).show();
}
});
4、单项选择
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".SingleChoose">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="世界上最大的海洋是什么?"
/>
<RadioGroup
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="A.太平洋"
android:id="@+id/rA"
/>
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="B.大西洋"
android:id="@+id/rB"
/>
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="C.北海"
android:id="@+id/rC"
/>
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="D.南海"
android:id="@+id/rD"
/>
</RadioGroup>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="提交"
android:id="@+id/submit"
/>
</LinearLayout>
public class SingleChoose extends AppCompatActivity {
private Button btnSubmit;
private RadioButton rA;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_single_choose);
btnSubmit = findViewById(R.id.submit);
rA = findViewById(R.id.rA);
btnSubmit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(rA.isChecked()){
Toast.makeText(SingleChoose.this,"所选是正确的",Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(SingleChoose.this,"所选是错误的",Toast.LENGTH_SHORT).show();
}
}
});
}
}
5、多项选择
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MulChoose">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="你喜欢哪些水果?"
tools:layout_editor_absoluteX="94dp"
tools:layout_editor_absoluteY="25dp" />
<CheckBox
android:id="@+id/checkBox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="香蕉" />
<CheckBox
android:id="@+id/checkBox2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="苹果" />
<CheckBox
android:id="@+id/checkBox3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="樱桃" />
<CheckBox
android:id="@+id/checkBox4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="梨" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="@style/TextAppearance.AppCompat.Large"
android:text="Large Text"
android:id="@+id/result"
/>
</LinearLayout>
public class MulChoose extends AppCompatActivity implements CompoundButton.OnCheckedChangeListener {
private CheckBox checkBox1,checkBox2,checkBox3,checkBox4;
private TextView result;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mul_choose);
checkBox1 = findViewById(R.id.checkBox1);
checkBox2 = findViewById(R.id.checkBox2);
checkBox3 = findViewById(R.id.checkBox3);
checkBox4 = findViewById(R.id.checkBox4);
result = findViewById(R.id.result);
checkBox1.setOnCheckedChangeListener(this);
checkBox2.setOnCheckedChangeListener(this);
checkBox3.setOnCheckedChangeListener(this);
checkBox4.setOnCheckedChangeListener(this);
}
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
String str = "你喜欢:";
if(checkBox1.isChecked()){
str = str+checkBox1.getText()+",";
}
if(checkBox2.isChecked()){
str = str+checkBox2.getText()+",";
}
if(checkBox3.isChecked()){
str = str+checkBox3.getText()+",";
}
if(checkBox4.isChecked()){
str = str+checkBox4.getText();
}
result.setText(str);
}
}
6、TextView、EditView、Button、ImageView
TextView:主要用于在界面上显示一段文本信息,android:gravity来指定文字的对齐方式,可选值有top/bottom/start/end/center;android:textColor和android:textSize可以对文字的颜色和大小进行修改;
EditView:EditText是程序用于和用户进行交互的一个重要控件,它允许用户在控件里输入和编辑内容,并可以在程序中对这些内容进行处理;android:hint属性可以指定一段提示性文本,在用户输入内容时,这段文本就会自动消失;
Button:系统默认会将按钮上的英文字母全部转换成大写,可以通过*android:textAllCaps = 'false"*属性可以保留指定原始的文字内容;
ImageView:用于在图片上展示图片的一个控件,图片资源通常放在drawable下;
7、ProgressBar(进度条)
用于在界面上显示一个进度条,表示程序正在加载一些数据
(1)android:visibility属性可以来设置进度的可见于不可见
(2)style可以来设置进度条的样式:圆形进度条或者水平进度条,默认是圆形进度条,下面的属性可以修改为水平进度条
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
(3)通过代码来控制进度条是否可见,以及动态的更改进度条的进度
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(progressBar.getVisibility()==View.VISIBLE){
progressBar.setVisibility(View.GONE);
}else{
progressBar.setVisibility(View.VISIBLE);
}
}
});
btnT.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
progressBar.setProgress(progressBar.getProgress()+10);
}
});
8、AlertDialog
AlertDialog可以在界面弹出一个对话框,这个对话框置顶于所有元素之上,能够屏蔽其他控件的交互能力,因此,AlertDialog一般用于提示非常重要的信息或警告信息;
测试代码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_learn_alert_dialog);
btnCeshi = findViewById(R.id.btnCeshi);
btnCeshi.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(LearnAlertDialog.this);
builder.setTitle("This ia a dialog")
.setMessage("you should think successfully")
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
.setNegativeButton("cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
.show();
}
});
}