android 自定义含有滚动选择器的对话框
2016-04-12 14:00
691 查看
最近在写一个项目,需要用到滚动选择器,本人的想法是弹出一个对话框,中间包含滚动选择器,其中滚动选择器的源码参考的这篇文章/article/7618170.html
先来看一下效果
用滚动选择器选择分数,点击确定按钮,打分完成,点击取消按钮,对话框消失。
关于自定义滚动选择器大家可以参考上面那篇文章,我觉得写的很容易理解。本人主要把滚动选择器和对话框相结合。
下面我们来看代码
PickerView的代码完全来自于上面文章的博主,这里就不贴了。
对话框布局文件如下
activity_main.layout
MainActivity的代码如下
好啦~很简单吧
先来看一下效果
用滚动选择器选择分数,点击确定按钮,打分完成,点击取消按钮,对话框消失。
关于自定义滚动选择器大家可以参考上面那篇文章,我觉得写的很容易理解。本人主要把滚动选择器和对话框相结合。
下面我们来看代码
PickerView的代码完全来自于上面文章的博主,这里就不贴了。
对话框布局文件如下
activity_main.layout
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:clickable="true" android:orientation="vertical" android:padding="10.0dip"> <LinearLayout android:id="@+id/customDialog" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:layout_gravity="center"> <TextView android:layout_width="match_parent" android:layout_height="40.0dip" android:gravity="center" android:textColor="#aa00aeef" android:textSize="20sp" android:text="开始打分"/> <LinearLayout android:id="@+id/content" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:orientation="horizontal"> <com.example.flt.myapplication.PickerView android:id="@+id/picker" android:layout_width="100dp" android:layout_height="100dp"></com.example.flt.myapplication.PickerView> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="分" android:layout_gravity="center_vertical"/> </LinearLayout> </LinearLayout> </FrameLayout>
MainActivity的代码如下
package com.example.flt.myapplication; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.Toast; import java.util.ArrayList; public class MainActivity extends Activity implements View.OnClickListener { private Button button; public PickerView pickerView; public String fenshu; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.login); button = (Button)this.findViewById(R.id.login); button.setOnClickListener(this); } /** * 点击登录按钮弹出对话框 * @param v */ @Override public void onClick(View v) { switch (v.getId()){ case R.id.login: dialog(); Toast.makeText(this,"点击了",Toast.LENGTH_LONG).show(); } } //对话框 public void dialog(){ final AlertDialog.Builder builder = new AlertDialog.Builder(this); //初始化自定义布局参数 LayoutInflater layoutInflater = getLayoutInflater(); final View customLayout = layoutInflater.inflate(R.layout.activity_main, (ViewGroup)findViewById(R.id.customDialog)); //为对话框设置视图 builder.setView(customLayout); pickerView = (PickerView)customLayout.findViewById(R.id.picker); //定义滚动选择器的数据项 ArrayList<String> grade = new ArrayList<>(); for(int i=0;i<10;i++){ grade.add(i+""); } //为滚动选择器设置数据 pickerView.setData(grade); pickerView.setOnSelectListener(new PickerView.onSelectListener() { @Override public void onSelect(String text) { Log.i("tag","选择了"+text); fenshu = text; } }); //对话框的确定按钮 builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Log.i("分数为=",fenshu.toString()); } }); //对话框的取消按钮 builder.setNegativeButton("取消",null); //显示对话框 builder.show(); } }
好啦~很简单吧
相关文章推荐
- Android:SingleTask对Intent传递数据的影响及解决办法
- Android中屏幕的方向
- 【转】Android手机分辨率基础知识(DPI,DIP计算)
- Android:SpannableString使用详解
- Android_自定义ViewPager指示器
- Android ViewPager使用详解
- Android性能优化总结
- Android-BaiduMapSDK示例的key验证失败问题
- Android finish 无法退出当前Activity
- Android 应用开发性能优化完全分析(下)
- Android 应用开发性能优化完全分析(上)
- android - ViewHolder到底用什么修饰?static?final?static final?
- Android ListView,GridView,RecyclerView图片加载错位闪动问题解决办法
- Android设置系统开机自动永不休眠
- 关于Android开发的40条优化建议
- Android progressBar 自定义
- AndroidManifest.xml文件反编译
- android:省市二级联动下拉框
- Android ContentProvider详解
- Android TabLayout与ViewPager实现动态Tab