android基础-对话框
来源:互联网 发布:善领dsa2016最新数据 编辑:程序博客网 时间:2024/05/17 23:40
1.对话框
1.1使用AlertDialog创建对话框
public class MainActivity extends Activity { TextView show; String[] items = new String[] { "疯狂Java讲义", "疯狂Ajax讲义", "轻量级Java EE企业应用实战", "疯狂Android讲义" }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); show = (TextView) findViewById(R.id.show); } public void simple(View source) { AlertDialog.Builder builder = new AlertDialog.Builder(this) // 设置对话框标题 .setTitle("简单对话框") // 设置图标 .setIcon(R.drawable.tools) .setMessage("对话框的测试内容\n第二行内容"); // 为AlertDialog.Builder添加“确定”按钮 setPositiveButton(builder); // 为AlertDialog.Builder添加“取消”按钮 setNegativeButton(builder) .create() .show(); } public void simpleList(View source) { AlertDialog.Builder builder = new AlertDialog.Builder(this) // 设置对话框标题 .setTitle("简单列表对话框") // 设置图标 .setIcon(R.drawable.tools) // 设置简单的列表项内容 .setItems(items, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { show.setText("你选中了《" + items[which] + "》"); } }); // 为AlertDialog.Builder添加“确定”按钮 setPositiveButton(builder); // 为AlertDialog.Builder添加“取消”按钮 setNegativeButton(builder) .create() .show(); } public void singleChoice(View source) { AlertDialog.Builder builder = new AlertDialog.Builder(this) // 设置对话框标题 .setTitle("单选列表项对话框") // 设置图标 .setIcon(R.drawable.tools) // 设置单选列表项,默认选中第二项(索引为1) .setSingleChoiceItems(items, 1, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { show.setText("你选中了《" + items[which] + "》"); } }); // 为AlertDialog.Builder添加“确定”按钮 setPositiveButton(builder); // 为AlertDialog.Builder添加“取消”按钮 setNegativeButton(builder) .create() .show(); } public void multiChoice(View source) { AlertDialog.Builder builder = new AlertDialog.Builder(this) // 设置对话框标题 .setTitle("多选列表项对话框") // 设置图标 .setIcon(R.drawable.tools) // 设置多选列表项,设置勾选第2项、第4项 .setMultiChoiceItems(items , new boolean[]{false , true ,false ,true}, null); // 为AlertDialog.Builder添加“确定”按钮 setPositiveButton(builder); // 为AlertDialog.Builder添加“取消”按钮 setNegativeButton(builder) .create() .show(); } public void customList(View source) { AlertDialog.Builder builder = new AlertDialog.Builder(this) // 设置对话框标题 .setTitle("自定义列表项对话框") // 设置图标 .setIcon(R.drawable.tools) // 设置自定义列表项 .setAdapter(new ArrayAdapter<String>(this , R.layout.array_item , items), null); // 为AlertDialog.Builder添加“确定”按钮 setPositiveButton(builder); // 为AlertDialog.Builder添加“取消”按钮 setNegativeButton(builder) .create() .show(); } public void customView(View source) { // 装载app\src\main\res\layout\login.xml界面布局文件 TableLayout loginForm = (TableLayout)getLayoutInflater() .inflate( R.layout.login, null); new AlertDialog.Builder(this) // 设置对话框的图标 .setIcon(R.drawable.tools) // 设置对话框的标题 .setTitle("自定义View对话框") // 设置对话框显示的View对象 .setView(loginForm) // 为对话框设置一个“确定”按钮 .setPositiveButton("登录", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // 此处可执行登录处理 } }) // 为对话框设置一个“取消”按钮 .setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // 取消登录,不做任何事情 } }) // 创建并显示对话框 .create() .show(); } private AlertDialog.Builder setPositiveButton( AlertDialog.Builder builder) { // 调用setPositiveButton方法添加“确定”按钮 return builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { show.setText("单击了【确定】按钮!"); } }); } private AlertDialog.Builder setNegativeButton( AlertDialog.Builder builder) { // 调用setNegativeButton方法添加“取消”按钮 return builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { show.setText("单击了【取消】按钮!"); } }); }}
1.2 使用PopupWindow
public class MainActivity extends Activity{ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // 装载R.layout.popup对应的界面布局 View root = this.getLayoutInflater().inflate(R.layout.popup, null); // 创建PopupWindow对象 final PopupWindow popup = new PopupWindow(root, 560, 720); Button button = (Button) findViewById(R.id.bn); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // 以下拉方式显示 // popup.showAsDropDown(v); //将PopupWindow显示在指定位置 popup.showAtLocation(findViewById(R.id.bn), Gravity.CENTER, 20,20); } }); // 获取PopupWindow中的“关闭”按钮 root.findViewById(R.id.close).setOnClickListener( new View.OnClickListener() { public void onClick(View v) { // 关闭PopupWindow popup.dismiss(); // ① } }); }}
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center_horizontal"><ImageView android:layout_width="240dp" android:layout_height="wrap_content" android:src="@drawable/java" /><Button android:id="@+id/close" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="关闭" /></LinearLayout>
1.3 使用ProgressDialog创建进度对话框
public class MainActivity extends Activity{ final static int MAX_PROGRESS = 100; // 该程序模拟填充长度为100的数组 private int[] data = new int[50]; // 记录进度对话框的完成百分比 int progressStatus = 0; int hasData = 0; ProgressDialog pd1,pd2; // 定义一个负责更新的进度的Handler Handler handler = new Handler() { @Override public void handleMessage(Message msg) { // 表明消息是由该程序发送的 if (msg.what == 0x123) { pd2.setProgress(progressStatus); } } }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } public void showSpinner(View source) { // 调用静态方法显示环形进度条 ProgressDialog.show(this, "任务执行中" , "任务执行中,请等待", false, true); // ① } public void showIndeterminate(View source) { pd1 = new ProgressDialog(MainActivity.this); // 设置对话框的标题 pd1.setTitle("任务正在执行中"); // 设置对话框显示的内容 pd1.setMessage("任务正在执行中,敬请等待..."); // 设置对话框能用“取消”按钮关闭 pd1.setCancelable(true); // 设置对话框的进度条风格 pd1.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); // 设置对话框的进度条是否显示进度 pd1.setIndeterminate(true); pd1.show(); // ② } public void showProgress(View source) { // 将进度条的完成进度重设为0 progressStatus = 0; // 重新开始填充数组 hasData = 0; pd2 = new ProgressDialog(MainActivity.this); pd2.setMax(MAX_PROGRESS); // 设置对话框的标题 pd2.setTitle("任务完成百分比"); // 设置对话框显示的内容 pd2.setMessage("耗时任务的完成百分比"); // 设置对话框不能用“取消”按钮关闭 pd2.setCancelable(false); // 设置对话框的进度条风格 pd2.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); // 设置对话框的进度条是否显示进度 pd2.setIndeterminate(false); pd2.show(); // ③ new Thread() { public void run() { while (progressStatus < MAX_PROGRESS) { // 获取耗时操作的完成百分比 progressStatus = MAX_PROGRESS * doWork() / data.length; // 发送空消息到Handler handler.sendEmptyMessage(0x123); } // 如果任务已经完成 if (progressStatus >= MAX_PROGRESS) { // 关闭对话框 pd2.dismiss(); } } }.start(); } // 模拟一个耗时的操作 public int doWork() { // 为数组元素赋值 data[hasData++] = (int) (Math.random() * 100); try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } return hasData; }}
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center_horizontal"> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="环形进度条" android:onClick="showSpinner" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="不显示进度的进度条" android:onClick="showIndeterminate" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="显示进度的进度条" android:onClick="showProgress" /></LinearLayout>
2.0 使用活动条(ActionBar)
2.1 使用ActionBar实现Tab导航
整段垮掉,不知道为什么运行不了
public class MainActivity extends FragmentActivity implements ActionBar.TabListener{ ViewPager viewPager; ActionBar actionBar; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // 获取ActionBar对象 actionBar = getActionBar(); // 获取ViewPager viewPager = (ViewPager) findViewById(R.id.pager); // 创建一个FragmentPagerAdapter对象,该对象负责为ViewPager提供多个Fragment FragmentPagerAdapter pagerAdapter = new FragmentPagerAdapter( getSupportFragmentManager()) { // 获取第position位置的Fragment @Override public Fragment getItem(int position) { Fragment fragment = new DummyFragment(); Bundle args = new Bundle(); args.putInt(DummyFragment.ARG_SECTION_NUMBER, position + 1); fragment.setArguments(args); return fragment; } // 该方法的返回值i表明该Adapter总共包括多少个Fragment @Override public int getCount() { return 3; } // 该方法的返回值决定每个Fragment的标题 @Override public CharSequence getPageTitle(int position) { switch (position) { case 0: return "第一页"; case 1: return "第二页"; case 2: return "第三页"; } return null; } }; // 设置ActionBar使用Tab导航方式 actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); // 遍历pagerAdapter对象所包含的全部Fragment // 每个Fragment对应创建一个Tab标签 for (int i = 0; i < pagerAdapter.getCount(); i++) { actionBar.addTab(actionBar.newTab() .setText(pagerAdapter.getPageTitle(i)) .setTabListener(this)); } // 为ViewPager组件设置FragmentPagerAdapter viewPager.setAdapter(pagerAdapter); // ① // 为ViewPager组件绑定事件监听器 viewPager.setOnPageChangeListener( new ViewPager.SimpleOnPageChangeListener() { // 当ViewPager显示的Fragment发生改变时激发该方法 @Override public void onPageSelected(int position) { actionBar.setSelectedNavigationItem(position); } }); } @Override public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) { } // 当指定Tab被选中时激发该方法 @Override public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) { viewPager.setCurrentItem(tab.getPosition()); // ② } @Override public void onTabReselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) { }}
这个fragment没搞明白不知道咋回事,不兼容,一个是自己创建的Fragment一个是v4下的Fragment好像new是不对的
阅读全文
0 0
- android基础--AlertDialog对话框
- android基础-对话框
- Android中对话框之一:对话框基础
- Android基础 - 对话框和浮动Activity
- Android基础 - 对话框和浮动Activity
- Android基础 - 对话框和浮动Activity
- Android基础--对话框与浮动activity
- Android基础 - 对话框和浮动Activity
- android基础(对话框风格Activity实现)
- Android基础 - 对话框和浮动Activity【转】
- Android基础 - 对话框和浮动Activity
- Android基础 - 对话框和浮动Activity
- android基础控件-弹出对话框的实现
- Android基础之AlertDialog(对话框)的学习
- Android基础——对话框集合
- Android开发基础之Dialog对话框大全
- Android基础控件——AlertDialog、ProgressDialog实现单选对话框、多选对话框、进度条对话框、输入框对话框
- android基础笔记:android中的各种基本对话框
- servlet学习笔记(一)-servlet的创建
- python 变量前的 单下划线 双下划线
- BerkeleyDB初识demo
- SetTimer函数的使用
- C++函数返回值发生的对象复制
- android基础-对话框
- 功能: 播放.mp3音频文件 (C#学习日记 2017-08-21)
- LED闪烁灯
- 2017-8-20
- 多尺度图片滑动窗口输出裁剪
- Ubuntu16.04安装配置JDK1.8.0
- 原理总结-hibernate
- HDU 6155 Subsequence Count(线段树 dp)
- Audacity