android 使用activity自定义下拉选择列表

 

本案例比较简单,就是使用activity自定义成Dialog样式的加载页面,就是弹出框形式。

第一步:我们先对下拉页面的样式进行定义MyDialogStyleTop,在styles.xml文件中,如下:

  <style name="AnimTop" parent="@android:style/Animation">

Xml代码   收藏代码
  1.        <item name="android:windowEnterAnimation">@anim/push_top_in</item>  
  2.        <item name="android:windowExitAnimation">@anim/push_top_out</item>  
  3.    </style>  
  4.   
  5.    <style name="MyDialogStyleTop" parent="android:Theme.Dialog">  
  6.        <item name="android:windowAnimationStyle">@style/AnimTop</item>  
  7.        <item name="android:windowFrame">@null</item>  
  8. <!-- 边框 -->  
  9.        <item name="android:windowIsFloating">true</item>  
  10. <!-- 是否浮现在activity之上 -->  
  11.        <item name="android:windowIsTranslucent">true</item>  
  12. <!-- 半透明 -->  
  13.        <item name="android:windowNoTitle">true</item>  
  14. <!-- 无标题 -->  
  15.        <item name="android:windowBackground">@android:color/transparent</item>  
  16. <!-- 背景透明 -->  
  17.        <item name="android:backgroundDimEnabled">false</item>  
  18. <!-- 模糊 -->  
  19.    </style>  

 

第二步;设计加载页面的xml布局top_dialog.xml,比较简单直接代码:

 

Xml代码   收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:layout_width="fill_parent"  
  4.     android:layout_height="fill_parent" >  
  5.   
  6.     <RelativeLayout  
  7.         android:layout_width="fill_parent"  
  8.         android:layout_height="fill_parent"  
  9.         android:layout_marginTop="46dp" >  
  10.   
  11.         <LinearLayout  
  12.             android:id="@+id/main_dialog_layout"  
  13.             android:layout_width="wrap_content"  
  14.             android:layout_height="wrap_content"  
  15.             android:layout_alignParentTop="true"  
  16.             android:layout_centerHorizontal="true"  
  17.             android:background="@drawable/group_bg"  
  18.             android:orientation="vertical" >  
  19.   
  20.             <LinearLayout  
  21.                 android:layout_width="match_parent"  
  22.                 android:layout_height="wrap_content" >  
  23.   
  24.                 <TextView  
  25.                     android:layout_width="wrap_content"  
  26.                     android:layout_height="wrap_content"  
  27.                     android:padding="8dp"  
  28.                     android:text="全部"  
  29.                     android:textColor="#fff"  
  30.                     android:textSize="18sp" />  
  31.             </LinearLayout>  
  32.   
  33.             <LinearLayout  
  34.                 android:layout_width="match_parent"  
  35.                 android:layout_height="wrap_content"  
  36.                 android:background="@drawable/grouplist_item_bg_prs" >  
  37.   
  38.                 <TextView  
  39.                     android:layout_width="wrap_content"  
  40.                     android:layout_height="wrap_content"  
  41.                     android:padding="8dp"  
  42.                     android:text="我的微薄"  
  43.                     android:textColor="#00cc00"  
  44.                     android:textSize="18sp" />  
  45.             </LinearLayout>  
  46.   
  47.             <LinearLayout  
  48.                 android:layout_width="match_parent"  
  49.                 android:layout_height="wrap_content" >  
  50.   
  51.                 <TextView  
  52.                     android:layout_width="wrap_content"  
  53.                     android:layout_height="wrap_content"  
  54.                     android:padding="8dp"  
  55.                     android:text="周边"  
  56.                     android:textColor="#fff"  
  57.                     android:textSize="18sp" />  
  58.             </LinearLayout>  
  59.   
  60.             <LinearLayout  
  61.                 android:layout_width="match_parent"  
  62.                 android:layout_height="wrap_content" >  
  63.   
  64.                 <TextView  
  65.                     android:layout_width="wrap_content"  
  66.                     android:layout_height="wrap_content"  
  67.                     android:padding="8dp"  
  68.                     android:text="特别关注"  
  69.                     android:textColor="#fff"  
  70.                     android:textSize="18sp" />  
  71.             </LinearLayout>  
  72.         </LinearLayout>  
  73.     </RelativeLayout>  
  74.   
  75. </RelativeLayout>  
 

 

第三步:创建dropPopupWindow类继承Activity,我这里没有做任何操作,直接显示xml布局内容,根据需要自己设计,代码如下:

 

Java代码   收藏代码
  1. import android.app.Activity;  
  2. import android.os.Bundle;  
  3. import android.view.MotionEvent;  
  4. import android.view.View;  
  5. import android.view.View.OnClickListener;  
  6. import android.widget.LinearLayout;  
  7. import android.widget.Toast;  
  8.   
  9. public class dropPopupWindow extends Activity{  
  10.   
  11.     private LinearLayout layout;  
  12.     @Override  
  13.     protected void onCreate(Bundle savedInstanceState) {  
  14.         super.onCreate(savedInstanceState);  
  15.         setContentView(R.layout.top_dialog);  
  16.         layout=(LinearLayout)findViewById(R.id.main_dialog_layout);  
  17.         layout.setOnClickListener(new OnClickListener() {  
  18.               
  19.             public void onClick(View v) {  
  20.                 Toast.makeText(getApplicationContext(), "提示:点击窗口外部关闭窗口!", Toast.LENGTH_SHORT).show();     
  21.             }  
  22.         });  
  23.     }  
  24.   
  25.     @Override  
  26.     public boolean onTouchEvent(MotionEvent event){  
  27.         finish();  
  28.         return true;  
  29.     }  
  30. }  
 

 

第四步:在首页中设置标题文本监听事件点击启动列表:

 

Java代码   收藏代码
  1. import android.app.Activity;  
  2. import android.content.Intent;  
  3. import android.os.Bundle;  
  4. import android.view.View;  
  5. import android.view.View.OnClickListener;  
  6. import android.widget.TextView;  
  7.   
  8. public class MainActivity extends Activity {  
  9.     private TextView title;  
  10.   
  11.     @Override  
  12.     public void onCreate(Bundle savedInstanceState) {  
  13.         super.onCreate(savedInstanceState);  
  14.         setContentView(R.layout.activity_main);  
  15.         title = (TextView) this.findViewById(R.id.title);  
  16.         // 把文字控件添加监听,点击弹出自定义窗口  
  17.         title.setOnClickListener(new OnClickListener() {  
  18.             public void onClick(View v) {  
  19.                 // 使用startActivityForResult启动picPopupWindow  
  20.                 startActivity(new Intent(MainActivity.this,dropPopupWindow.class));  
  21.             }  
  22.         });  
  23.     }  
  24. }  
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值