popwindow+listview
来源:互联网 发布:结对编程 编辑:程序博客网 时间:2024/06/06 01:25
实现下拉菜单,spinner一般也能够实现,但自定义比较麻烦,比如spinner有默认值时,还得动态添加spinner默认值,而用popwindow+listview也能实现相同的效果,并且自定义比较简单。
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.spinner.MainActivity"> <Button android:id="@+id/button" android:layout_width="80dp" android:layout_height="40dp" android:background="#10000000" android:gravity="center_vertical" android:text="选择状态" /></LinearLayout>
popwindow填充的listview
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="wrap_content" android:layout_height="wrap_content"> <ListView android:background="#10000000" android:id="@+id/listView" android:layout_width="80dp" android:layout_height="wrap_content"> </ListView></LinearLayout>
listview每个item代码
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:background="#10000000" android:id="@+id/tv_text" android:layout_width="match_parent" android:layout_height="30dp" /></LinearLayout>
package com.example.spinner;import android.graphics.drawable.BitmapDrawable;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.Button;import android.widget.ListView;import android.widget.PopupWindow;import java.util.ArrayList;import static com.example.spinner.R.layout.listview;public class MainActivity extends AppCompatActivity { private Button button; private ArrayList list = new ArrayList(); private ListView listView; private MyAdapter adapter; private boolean isShow; private PopupWindow popupWindow; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button) findViewById(R.id.button); initDate(); initPop(); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if(popupWindow.isShowing()){ popupWindow.dismiss(); }else{ popupWindow.showAsDropDown(button); } } }); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { button.setText(list.get(i)+""); } }); } private void initPop() { View view= LayoutInflater.from(this).inflate(listview,null); adapter=new MyAdapter(this,list); listView= (ListView) view.findViewById(R.id.listView); listView.setAdapter(adapter); popupWindow =new PopupWindow(view, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, true); popupWindow.setOutsideTouchable(true); popupWindow.setBackgroundDrawable(new BitmapDrawable()); popupWindow.setFocusable(true); popupWindow.setContentView(view); } private void initDate() { list.add("0"); list.add("1"); list.add("2"); }}
package com.example.spinner;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.TextView;import java.util.ArrayList;/** * Created by Administrator on 2017/1/1. */public class MyAdapter extends BaseAdapter { private Context context; private ArrayList list; public MyAdapter(Context context,ArrayList list){ this.context=context; this.list=list; } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return position; } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup viewGroup) { ViewHolder vh; if (convertView == null) { vh = new ViewHolder(); convertView = LayoutInflater.from(context).inflate(R.layout.item, null); vh.textview = (TextView) convertView.findViewById(R.id.tv_text); convertView.setTag(vh); } else { vh = (ViewHolder) convertView.getTag(); } vh.textview.setText(list.get(position) + ""); return convertView; } static class ViewHolder { TextView textview; }}
1 0
- popwindow+listview
- popwindow实现listview对应删除
- 解决PopWindow中ListView点击无反应和隐藏popwindow
- 点击Listview弹出PopWindow的用法
- 点击Listview弹出PopWindow的用法
- PopWindow与ListView多选实现
- popwindow 加listview OnItemClickListener失效问题
- 在listView中如何弹出一个popWindow
- 关于popwindow ListView 动画,点击其他地方消失
- POPwindow
- popwindow
- popwindow
- PopWindow
- popwindow
- popwindow
- PopWindow
- popwindow
- popwindow
- pyhton+Selenium Girl2
- Memory Management (DXE) 代码简析
- Android 虚拟机运行简单的 hello world 显示“ Unfortunately,活动名has stoped ”
- 简单翻转程序
- IOS 读取 PDF图层
- popwindow+listview
- tensorflow 使用softmax 分类mnist数据库
- 在google map上显示Instagram的照片
- 开发的一个android程序,总是显示无法运行,就退出了。但是没有报错。求大神解救啊!
- 沉没成本---欲罢不能的困局?
- 求帮忙用gson解析下这个嵌套的json数据
- java web,开发注意事项
- Mybatis中在配置文件中配置别名
- 关于NSNumber