对话框
<?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">
<Button
android:id="@+id/bntShowMsg"
android:text="信息提示对话框"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<Button
android:id="@+id/btnShowSingle"
android:text="单选对话框"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<Button
android:id="@+id/btnShowMulti"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="多选对话框"
android:layout_gravity="center"
/>
<Button
android:id="@+id/btnShowCustom"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="自定义对话框"
android:layout_gravity="center"
/>
</LinearLayout>
package com.example.myfisrtapp1;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import android.content.DialogInterface;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private static final String TAG = "MainActivity";
private Button bntShowMsg;
private Button btnShowSingle;
private Button btnShowMulti;
private Button btnShowCustom;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bntShowMsg = findViewById(R.id.bntShowMsg);
btnShowSingle = findViewById(R.id.btnShowSingle);
btnShowMulti = findViewById(R.id.btnShowMulti);
btnShowCustom = findViewById(R.id.btnShowCustom);
bntShowMsg.setOnClickListener(this);
btnShowSingle.setOnClickListener(this);
btnShowMulti.setOnClickListener(this);
btnShowCustom.setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.bntShowMsg:
showMsgDialog();
break;
case R.id.btnShowSingle:
showSingleDialog();
break;
case R.id.btnShowMulti:
showMultiDialog();
break;
case R.id.btnShowCustom:
showCustomDialog();
break;
}
}
private void showMsgDialog() {
//通过AlertDialog.Builder来构造一个对象,为什么不直接Dialog一个对象,
// 是因为Dialog是一个基类,我们尽量要使用它的子类来进行实例化对象,在实例化对象的时候,
// 需要将当前的上下文传过去,因为我这里使用的是Activity,它本身就是一个上下文Content,
// 所以直接传入this
AlertDialog.Builder builder =new AlertDialog.Builder(this);
builder.setTitle("提示信息对话框");
builder.setMessage("是否确定退出");
builder.setIcon(R.mipmap.ic_launcher);
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this, "点击了确定", Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("取消",null);
//创建并显示对话框
builder.show();
}
private void showSingleDialog() {
AlertDialog.Builder builder =new AlertDialog.Builder(this);
builder.setTitle("请选择性别");
final String[] sexs = new String[]{"男","女"};
builder.setSingleChoiceItems(sexs, 0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Log.d(TAG, "您选择的是:"+sexs[i]);
}
});
builder.setPositiveButton("确定",null);
builder.show();
}
private void showMultiDialog() {
AlertDialog.Builder builder =new AlertDialog.Builder(this);
builder.setTitle("请选择传感器");
final String[] sensors = new String[]{"温度传感器","湿度传感器","光照传感器","CO2传感器"};
builder.setMultiChoiceItems(sensors, new boolean[]{false, false, false, false}, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i, boolean b) {
Log.d(TAG, "您选择了: "+sensors[i]);
}
});
builder.setPositiveButton("确定",null);
builder.show();
}
private void showCustomDialog() {
}
}
进度条
<?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">
<ProgressBar
android:id="@+id/pbCircle"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<ProgressBar
android:id="@+id/pbHorizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/Widget.AppCompat.ProgressBar.Horizontal"/>
<Button
android:id="@+id/btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="进度"
android:layout_gravity="center"
/>
<SeekBar
android:id="@+id/seekbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:progress="30"/>
<TextView
android:id="@+id/tvSeekbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="数值范围0-100之间,当前值:30"
android:textSize="20sp"/>
</LinearLayout>
java代码
package com.example.myfisrtapp1;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import android.content.DialogInterface;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity{
private ProgressBar progressBar;
private Button button;
private SeekBar seekBar;
private TextView tvSeekbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
progressBar = findViewById(R.id.pbHorizontal);
button = findViewById(R.id.btn);
seekBar = findViewById(R.id.seekbar);
tvSeekbar = findViewById(R.id.tvSeekbar);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
progressBar.setProgress(progressBar.getProgress()+10);
}
});
//注册拖动条的监听器
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
tvSeekbar.setText("数值范围0-100之间,当前值:"+i);
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
}
}