Android PopupWindow嵌套ListView(模仿分类下拉菜单效果)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Android PopupWindow嵌套ListView(模仿分类下拉菜单效果),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3661字,纯文字阅读大概需要6分钟。
内容图文
1:布局文件
[java] view plaincopyprint?
- <span style= "font-size:18px;" ><RelativeLayout xmlns:android= "http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- >
- <TextView
- android:id="@+id/tv_text_age"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:background="@drawable/choolse_bg"
- android:text="不限"
- android:paddingLeft="12dp"
- android:textColor="#9d72d2"
- android:layout_centerInParent="true"
- android:gravity="center_vertical"
- />
- </RelativeLayout></span>
[html] view plaincopyprint?
- package com.jackie.popupwindow;
- import java.util.ArrayList;
- import java.util.List;
- import android.app.Activity;
- import android.graphics.Color;
- import android.graphics.drawable.ColorDrawable;
- import android.os.Bundle;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.view.ViewGroup;
- import android.view.ViewGroup.LayoutParams;
- import android.widget.AdapterView;
- import android.widget.AdapterView.OnItemClickListener;
- import android.widget.BaseAdapter;
- import android.widget.ListView;
- import android.widget.PopupWindow;
- import android.widget.TextView;
- public class MainActivity extends Activity implements OnClickListener {
- private TextView tv_text_age;
- private PopupWindow pop;
- ListView listView = null;
- private List<String> datas;
- private SelectAgeAdapter mSelectAdapter;
- private LayoutInflater inflater;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- initData();
- inflater = LayoutInflater.from(this);
- tv_text_age = (TextView) findViewById(R.id.tv_text_age);
- tv_text_age.setOnClickListener(this);
- }
- private void initData() {
- datas = new ArrayList<String>();
- for(int i = 0; i < 50; i++){
- datas.add("HelloWorld - " + i);
- }
- }
- @Override
- public void onClick(View v) {
- if(v.getId() == R.id.tv_text_age){
- if(pop == null) {
- listView = new ListView(this);
- listView.setDividerHeight(1);
- listView.setBackgroundResource(R.drawable.kge_feek_bg);
- listView.setCacheColorHint(0x00000000);
- mSelectAdapter = new SelectAgeAdapter();
- pop = new PopupWindow(listView, tv_text_age.getWidth(), LayoutParams.WRAP_CONTENT, true);
- }
- listView.setAdapter(mSelectAdapter);
- pop.setBackgroundDrawable(new ColorDrawable(Color.RED));
- pop.showAsDropDown(tv_text_age, 0, 0);
- listView.setOnItemClickListener(new OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView<?> parent, View view,
- int position, long id) {
- tv_text_age.setText(datas.get(position));
- dismissPopWindow();
- }
- });
- }
- }
- public void dismissPopWindow() {
- if(pop != null && pop.isShowing()){
- pop.dismiss();
- }
- }
- class SelectAgeAdapter extends BaseAdapter {
- @Override
- public int getCount() {
- return datas != null&&datas.size() > 0 ? datas.size() : 0;
- }
- @Override
- public Object getItem(int position) {
- return datas.get(position);
- }
- @Override
- public long getItemId(int position) {
- return position;
- }
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- ViewHolder holder;
- if (convertView == null) {
- holder = new ViewHolder();
- convertView = inflater.inflate(R.layout.item, null);
- holder.tv_name = (TextView) convertView.findViewById(R.id.tv_name);
- convertView.setTag(holder);
- } else {
- holder = (ViewHolder) convertView.getTag();
- }
- holder.tv_name.setText(datas.get(position));
- return convertView;
- }
- }
- class ViewHolder {
- TextView tv_name;
- }
- }
原文:http://blog.csdn.net/shineflowers/article/details/44178357
内容总结
以上是互联网集市为您收集整理的Android PopupWindow嵌套ListView(模仿分类下拉菜单效果)全部内容,希望文章能够帮你解决Android PopupWindow嵌套ListView(模仿分类下拉菜单效果)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。
来源:【匿名】