目录
ProgressBar 进度条
ProgressBar是Android中原生的进度条,分为环行进度条和圆形进度条,由style控制
<?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"
android:padding="30dp"
tools:context=".MainActivity2">
<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<ProgressBar
android:layout_marginTop="30dp"
android:id="@+id/progressBar2"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
PopuoWindow 弹出框
如何加载一个view或者导入自定义的xml布局?
1.首先创建弹出的文本框和内容
2.然后创建弹出框,设置弹出框的位置
3.设置点击其他地方可以收回弹出框
4.给按钮设置监听,如果用户点击了按钮就弹出文本框
//创建弹出的文本
TextView textView=new TextView(MainActivity3.this);
textView.setText("弹出框内容");
//创建弹出框
PopupWindow popupWindow=new PopupWindow(textView,200,300);
//点击其他地方收回弹出框
popupWindow.setOutsideTouchable(true);
//监听
btn_test.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//显示弹出窗
popupWindow.showAsDropDown(btn_test);
}
});
如何导入自定义布局?
首先创建一个xml文件,文件里面写你想要弹出的内容
然后通过getLayoutInflater().inflate获取到你的xml文件转化成view
然后给控件添加监听,然后给弹出框设置显示按钮就好了;
View popup_item = getLayoutInflater().inflate(R.layout.popup_item,null);
PopupWindow popupWindow2=new PopupWindow(popup_item,400,300);
popupWindow2.setOutsideTouchable(true);
//设置背景图
popupWindow2.setBackgroundDrawable(getResources().getDrawable(R.drawable.ic_launcher_background));
//获取控件监听
btn_text2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
popupWindow2.showAsDropDown(btn_text2);
}
});
Dialog 对话框
普通对话框
1.用户点击了按钮,触发监听。
2.创建对话框,显示在此页面
3.setTitle(创建标题)
4.setMessage(设置内容)
5.设置对话框的按钮
6.对话框.show()。让对话框显示出来.
private View.OnClickListener btn_dialog_item1_click = new View.OnClickListener() {
@Override
public void onClick(View v) {
// 显示对话框
AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity4.this)
.setTitle("警告")
.setMessage("确定删除该条数据吗?")
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity4.this, "取消", Toast.LENGTH_SHORT).show();
}
})
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity4.this, "确定", Toast.LENGTH_SHORT).show();
}
});
dialog.show();
}
};
列表对话框
1.用户点击了按钮,触发监听
2.创建数组,存内容
2.创建对话框,显示在此页面
3.setTitle(创建标题)
4.setItems(传数组,创建监听)
5.拿出用户的选择,显示在页面上
5.设置对话框的按钮
6.对话框.show()。让对话框显示出来.
private View.OnClickListener btn_dialog_item2_click = new View.OnClickListener() {
@Override
public void onClick(View v) {
// 显示列表对话框
// 标题 内容(变为列表) 取消按钮 确定按钮
String[] types = {"A照","B照","C照","D照"};
AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity4.this)
.setTitle("请选择你的驾照类别")
.setItems(types, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
choice = types[which];
Toast.makeText(MainActivity4.this, "你的驾照为:"+choice, Toast.LENGTH_SHORT).show();
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
dialog.show();
}
};
单选对话框
单选列表对话框与列表对话框差不多是一样的,只是它是单选,跟列表的区别就是列表用的setItems 然后直接输出,而单选用的.setSingleChoiceItems把用户选择存进choice里面
private View.OnClickListener btn_dialog_item3_click = new View.OnClickListener() {
@Override
public void onClick(View v) {
// 弹出单选列表对话框
String[] types = {"A照","B照","C照","D照"};
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity4.this)
.setTitle("你的驾照类别为")
.setSingleChoiceItems(types, 2, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
choice = types[which];
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
})
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity4.this, "你的驾照类别为:"+choice, Toast.LENGTH_SHORT).show();
}
});
builder.show();
}
};
多选对话框
多选用的是 setMultiChoiceItems,然后后面确定按钮把用户选中的值都存进choise里面然后显示
private View.OnClickListener btn_dialog_item4_click = new View.OnClickListener() {
@Override
public void onClick(View v) {
// 显示多选列表对话框
String[] types = {"A照","B照","C照","D照"};
boolean[] checkItems = {true, false, true, false};
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity4.this)
.setTitle("你的驾照类别是")
.setMultiChoiceItems(types, checkItems, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
checkItems[which] = isChecked;
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
})
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
choice = "";
for (int i = 0 ;i < checkItems.length; i++) {
if (checkItems[i]) {
choice = choice + types[i] + ",";
}
}
Toast.makeText(MainActivity4.this, "你的驾照类别为:"+choice, Toast.LENGTH_SHORT).show();
}
});
builder.show();
}
};
半自定义对话框
自定义对话框通过getLayoutInflater().inflate获取你创建的自定义的xml文件
然后通过setview()函数把试图传进去,然后在用户点击了确定之后做操作
public View.OnClickListener btn_dialog_item5_click=new View.OnClickListener() {
@Override
public void onClick(View v) {
//显示半自定义对话框 做一个登录功能
View view = getLayoutInflater().inflate(R.layout.dialog_login, null);
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity4.this)
.setTitle("登录")
.setView(view)
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.dismiss();
}
})
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
//取出用户输入的账号密码
EditText et_user = view.findViewById(R.id.et_user);
String user = et_user.getText().toString();
EditText et_pwd = view.findViewById(R.id.et_pwd);
String pwd = et_pwd.getText().toString();
Toast.makeText(MainActivity4.this, "你的账号是:" + user + "密码是" + pwd, Toast.LENGTH_SHORT).show();
}
});
builder.show();
}
};
Spinner 下拉框
下拉框分为静态下拉框和动态下拉框。
静态下拉框
1. 打开“res/values/strings.xml” 文件,定义将在Spinner(下拉列表)显示的项目列表。
<resources>
<string name="app_name">Day5</string>
<string name="depart_promt">静态下拉框</string>
<string-array name="depary_arr">
<item>chrome</item>
<item>safari</item>
<item>Edge</item>
<item>firefox</item>
<item>ie8</item>
</string-array>
</resources>
2.然后打开你的布局文件,在entries里面名字(@array/下拉框名)
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Spinner
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:prompt="@string/depart_promt"
android:entries="@array/depary_arr"/>
<Button
android:id="@+id/btn_sp"
android:text="取值"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
3.获取用户的选择(和按钮结合使用)
//结合使用
btn_sp = findViewById(R.id.btn_sp);
spinner = findViewById(R.id.spinner);
btn_sp.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String chois = spinner.getSelectedItem().toString();
Toast.makeText(MainActivity5.this, "你的选择是"+chois, Toast.LENGTH_SHORT).show();
}
});
动态下拉框
1.在布局文件中创建一个spinner
<Spinner
android:id="@+id/spinner1"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
2.在Java代码中获取控件
//根据id获取控件
spinner1=findViewById(R.id.spinner1);
3.创建数组,存下拉框里面的值,创建适配器
String[] areas={"北京","上海","天津","香港"};
//创建适配器
ArrayAdapter adapter=new ArrayAdapter(MainActivity5.this, android.R.layout.simple_spinner_item,areas);
4.给下拉框设置适配器,然后根据用户的选择显示
//给下拉框设置适配器
spinner1.setAdapter(adapter);
spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
String choice = areas[i];
Toast.makeText(MainActivity5.this, "你的选择是"+choice, Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});