】PopUpWwindow
package com.example.demo;
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.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.PopupWindow;
import android.widget.TextView;
public class MainActivity extends Activity {
private TextView tv;
private Button bt;
private ListView lv;
private List<String> l;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv=(TextView)findViewById(R.id.tv);
bt=(Button)findViewById(R.id.bt);
lv=new ListView(this);
l=new ArrayList<String>();
for(int i=0;i<33;i++){
l.add(i+"");
}
ArrayAdapter adapter=new ArrayAdapter(this, android.R.layout.simple_list_item_1,l);
lv.setAdapter(adapter);
bt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
/**
* // 弹出式的窗口(弹出式下拉框),PopupWindow,“泡泡”
// contentView:内容视图,弹出窗口锁包含的视图
// width:PopupWindow的宽度
// height:PopupWindow的高度
*/
PopupWindow pw=new PopupWindow(lv,ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
// 如果不设置PopupWindow的背景,无论是点击外部区域还是Back键都无法dismiss弹框
//pw.setBackgroundDrawable(getResources().getDrawable(R.drawable.back));
pw.setBackgroundDrawable(new BitmapDrawable());
// 让PopupWindow获得焦点e
// Popupwindow挂载到哪一个控件上
// 相对于EditText在x轴和y轴的偏移量
popupWindow.setOutsideTouchable(true);
pw.setFocusable(true);
pw.showAsDropDown(tv,0,0);
//也可以在指定位置显示弹窗
pw.showAtLocation(parent, gravity, x, y)
}
});
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
tv.setText(l.get(position));
}
});
}
}
】PopUpMenu
package com.example.kk;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.PopupMenu;
public class MainActivity extends Activity {
private Button bt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bt=(Button)findViewById(R.id.bt);
bt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
/**
* v:让PopupMenu与v关联
*/
PopupMenu pm=new PopupMenu(MainActivity.this, v);
getMenuInflater().inflate(R.menu.main, pm.getMenu());
pm.show();
}
});
}
}