Android 浮动列表ListPopupWindow
1.Activity:
package com.example.myapi.popupwindow; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.ListPopupWindow; import com.example.myapi.R; /** * 实现列表浮动窗口 * @author USER * */ public class ListPopupWindowActivity extends Activity implements OnClickListener{ ArrayList<String> list = new ArrayList<String>(); private Button btn; ArrayAdapter<String> adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.popup); btn = (Button)findViewById(R.id.btn_popup); btn.setOnClickListener(this); adapter = new ArrayAdapter<String>(this,android.R.layout.simple_expandable_list_item_1,getData()); } public void onClick(View v) { if(v.getId() == btn.getId()){ showListPopupWindow(btn); } } private void showListPopupWindow(View anchor){ ListPopupWindow listPopupWindow = new ListPopupWindow(this); listPopupWindow.setAnchorView(anchor); listPopupWindow.setAdapter(adapter); if(!listPopupWindow.isShowing()){ listPopupWindow.show(); } } private ArrayList<String> getData(){ list.add("系统设置"); list.add("关注查看"); list.add("收藏查看"); list.add("历史浏览"); return list; } }
2.Adapter
package com.example.myapi.popupwindow; import java.util.ArrayList; import com.example.myapi.R; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.TextView; public class PopupWindowAdapter extends BaseAdapter{ private ArrayList<String> datas; private Context context; public PopupWindowAdapter(Context context,ArrayList<String> datas){ this.context = context; this.datas = datas; } public int getCount() { return datas.size(); } public Object getItem(int position) { return datas.get(position); } public long getItemId(int position) { return position; } public View getView(int position, View convertView, ViewGroup parent) { if(convertView == null){ convertView = LayoutInflater.from(context).inflate(R.layout.more_item, null); TextView tv = (TextView)convertView.findViewById(R.id.more_tv); tv.setText(datas.get(position)); } return convertView; } }
3.主布局xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/popup_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Button android:id="@+id/btn_popup" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Button" /> </LinearLayout>
注意:ListPopupWindow是从android版本11开始的。其他的就没什么要注意的了,复制粘贴到你的项目中,体验一下吧。
浙公网安备 33010602011771号