文字类组件
文本框组件
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="这是一个文本框"
android:textSize="32dp"
android:textColor="@color/colorAccent"
android:maxWidth="180dp"
/>
编辑框
<EditText
android:id="@+id/e1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="hint设置提示信息"
android:lines="3"
android:drawableLeft="@mipmap/hurt"
/>
android:lines---------设置文本框所占行数。
EditText e1 = findViewById(R.id.e1);
e1.getText();
按钮
普通按钮
<Button
android:id="@+id/b1"
android:text="button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
一:匿名内部类作为单击事件监听器。
package com.example;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = findViewById(R.id.b1);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(MainActivity.this,"点击了按钮",Toast.LENGTH_SHORT).show();
}
});
}
}
二:通过onClick属性实现
在Activity中添加一个包含View类型参数的方法:
public void myClick(View view){
Toast.makeText(MainActivity.this,"点击了按钮2",Toast.LENGTH_SHORT).show();
}
将xml文件中android:onClick属性指定为步骤一中的方法名:
android:onClick="myClick"
图片按钮
<ImageButton
android:background="#0000"
android:src="@mipmap/hurt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
单选按钮
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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">
<RadioGroup
android:id="@+id/r1"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="男" />
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="女" />
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="保密" />
</RadioGroup>
</RelativeLayout>
package com.example;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
RadioGroup radioGroup = findViewById(R.id.r1);
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int i) {
RadioButton r = findViewById(i);
Toast.makeText(MainActivity.this,r.getText(),Toast.LENGTH_SHORT).show();
}
});
}
}
运行截图:
通过另一个按钮来显示选中的值(使用自定义的方法)
<?xml version="1.0" encoding="utf-8"?>
<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=".MainActivity">
<RadioGroup
android:id="@+id/r1"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="男" />
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="女" />
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="保密" />
</RadioGroup>
<Button
android:id="@+id/b1"
android:onClick="onClick"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="控制"/>
</LinearLayout>
package com.example;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
Button b1;
RadioGroup radioGroup;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
radioGroup = findViewById(R.id.r1);
b1 = findViewById(R.id.b1);
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int i) {
RadioButton r = findViewById(i);
Toast.makeText(MainActivity.this,r.getText(),Toast.LENGTH_SHORT).show();
}
});
}
public void onClick(View view){
for(int i=0;i<radioGroup.getChildCount();i++){
RadioButton rr = (RadioButton) radioGroup.getChildAt(i);
if (rr.isChecked()){
Toast.makeText(MainActivity.this,rr.getText(),Toast.LENGTH_SHORT).show();
break;
}
}
}
}
复选框
<?xml version="1.0" encoding="utf-8"?>
<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=".MainActivity">
<CheckBox
android:id="@+id/c1"
android:text="checkbox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<CheckBox
android:id="@+id/c2"
android:text="checkbox2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<CheckBox
android:id="@+id/c3"
android:text="checkbox3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<CheckBox
android:id="@+id/c4"
android:text="checkbox4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
package com.example;
import androidx.appcompat.app.AppCompatActivity;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
CheckBox like1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
like1 = findViewById(R.id.c1);
like1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
if(like1.isChecked()){
Toast.makeText(MainActivity.this,like1.getText(),Toast.LENGTH_SHORT).show();
}
}
});
}
}
日期选择器
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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">
<DatePicker
android:id="@+id/c1"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.DatePicker;
import android.widget.Toast;
import java.util.Calendar;
public class MainActivity extends AppCompatActivity {
int year,month,day;
DatePicker datePicker;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
datePicker = (DatePicker) findViewById(R.id.c1);
Calendar calendar = Calendar.getInstance();
year = calendar.get(Calendar.YEAR);
month = calendar.get(Calendar.MONTH);
day = calendar.get(Calendar.DAY_OF_MONTH);
datePicker.init(year, month, day, new DatePicker.OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker datePicker, int i, int i1, int i2) {
MainActivity.this.year = i;
MainActivity.this.month = i1;
MainActivity.this.day = i2;
show(year,month,day);
}
});
}
private void show(int year,int month,int day){
String str = year + "年" + (month+1) + "月" + day + "日";
Toast.makeText(MainActivity.this,str,Toast.LENGTH_SHORT);
}
}
时间选择器
<TimePicker
android:id="@+id/t1"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</TimePicker>
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.DatePicker;
import android.widget.TimePicker;
import android.widget.Toast;
import java.util.Calendar;
public class MainActivity extends AppCompatActivity {
TimePicker tp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tp = findViewById(R.id.t1);
tp.setIs24HourView(true);//改成24小时制
tp.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
@Override
public void onTimeChanged(TimePicker timePicker, int i, int i1) {
String str = i + "时" + i1 + "分";
Toast.makeText(MainActivity.this,str,Toast.LENGTH_SHORT).show();
}
});
}
}
计时器
<Chronometer
android:id="@+id/c1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#FFFF00"
android:layout_centerHorizontal="true"
/>
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.os.SystemClock;
import android.widget.Chronometer;
import android.widget.DatePicker;
import android.widget.TimePicker;
import android.widget.Toast;
import java.util.Calendar;
public class MainActivity extends AppCompatActivity {
Chronometer ch;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ch = findViewById(R.id.c1);
//设置起始时间
ch.setBase(SystemClock.elapsedRealtime());
//设置时间格式
ch.setFormat("%s");
ch.start();
ch.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
@Override
public void onChronometerTick(Chronometer chronometer) {
if(SystemClock.elapsedRealtime()-ch.getBase()>=60000){
ch.stop();
}
}
});
}
}