安卓day02
Menu菜单
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
// menu.add(1,1,2,"排序2");
getMenuInflater().inflate(R.menu.menu,menu);
super.onCreateContextMenu(menu, v, menuInfo);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
int itemId = item.getItemId();
switch (itemId){
case 1:
Log.i("---", "onOptionsItemSelected:111 ");
break;
case 2:
Log.i("---", "onOptionsItemSelected222: ");
break;
}
return super.onContextItemSelected(item);
}
public void show(View view) {
PopupMenu popupMenu = new PopupMenu(Main2Activity.this,textView);
popupMenu.inflate(R.menu.menu);
PopupWindow popupWindow = new PopupWindow(Main2Activity.this);
View inflate = Main2Activity.this.getLayoutInflater().inflate(R.layout.activity_main, null);
popupWindow.setContentView(inflate);
popupWindow.setOutsideTouchable(true);//点击外部消失
PopupWindow
1PopupWindow实现
编写PopupWindow要显示的布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="用户名"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="=密码"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="确定"/>
</LinearLayout>
2实例化PopupWindow 设置属性并显示
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.PopupWindow;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private Button eject;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
eject = findViewById(R.id.eject);
}
public void eject(View view) {
//实例化对象
final PopupWindow popupWindow = new PopupWindow(MainActivity.this);
//获得要显示的视图
View showView = MainActivity.this.getLayoutInflater().inflate(R.layout.login, null);
//设置视图
popupWindow.setContentView(showView);
//设置窗口的高
popupWindow.setHeight(400);
//设置窗口的宽
popupWindow.setWidth(600);
//将窗口外部点击消失
popupWindow.setOutsideTouchable(true);
//设置获得焦点
popupWindow.setFocusable(true);
//将窗口显示在eject控件之下
// popupWindow.showAsDropDown(eject,200,200);
//将窗口显示在父控件的指定位置
popupWindow.showAtLocation(showView, Gravity.CENTER,0,0);
//找到控件
final EditText userName = showView.findViewById(R.id.userName);
final EditText password = showView.findViewById(R.id.password);
Button login = showView.findViewById(R.id.login);
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "用户名:"+userName.getText().toString()+",密码:"+password.getText().toString(), Toast.LENGTH_SHORT).show();
popupWindow.dismiss();
}
});
WindowManager.LayoutParams attributes = getWindow().getAttributes();
//设置透明度
attributes.alpha = 0.3f;
//设置给Activity
getWindow().setAttributes(attributes);
//关闭PopupWindow的监听
popupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
@Override
public void onDismiss() {
WindowManager.LayoutParams attributes = getWindow().getAttributes();
//设置透明度
attributes.alpha = 1.0f;
//设置给Activity
getWindow().setAttributes(attributes);
}
});
}
}