Android复习选项菜单、自定义对话框、隐式跳转制作一个综合小demo
————安德风QQ1652102745
一、最终效果演示:
二、布局设计
1、界面布局设计 Activity_main.xml
1 <?xml version="1.0" encoding="utf-8"?>
2
3 xmlns:app="http://schemas.android.com/apk/res-auto"
4 xmlns:tools="http://schemas.android.com/tools"
5 android:layout_width="wrap_content"
6 android:layout_height="wrap_content"
7 tools:context=".MainActivity"
8 android:background="@color/colorPrimary"
9 >
10
11
12
13 android:id="@+id/imageView"
14 android:layout_width="422dp"
15 android:layout_height="746dp"
16 app:layout_constraintBottom_toBottomOf="parent"
17 app:layout_constraintEnd_toEndOf="parent"
18 app:layout_constraintStart_toStartOf="parent"
19 app:layout_constraintTop_toTopOf="parent"
20 app:srcCompat="@drawable/menu" />
21
2、自定义对话框布局设计 (dailog.xml)
1 <?xml version="1.0" encoding="utf-8"?>
2
3 xmlns:android="http://schemas.android.com/apk/res/android"
4 xmlns:app="http://schemas.android.com/apk/res-auto"
5 xmlns:tools="http://schemas.android.com/tools"
6 android:layout_width="match_parent"
7 android:layout_height="wrap_content"
8 android:layout_gravity="center_horizontal"
9 android:background="@drawable/dialog_bg">
10
11
12 android:id="@+id/textView"
13 android:layout_width="wrap_content"
14 android:layout_height="wrap_content"
15 android:layout_marginTop="356dp"
16 android:text="您确定要退出吗?"
17 android:textColor="#EF0A0A"
18 android:textSize="40sp"
19 android:textStyle="bold"
20 app:layout_constraintEnd_toEndOf="parent"
21 app:layout_constraintHorizontal_bias="0.62"
22 app:layout_constraintStart_toStartOf="parent"
23 app:layout_constraintTop_toTopOf="parent" />
24
25
26 android:layout_width="409dp"
27 android:layout_height="184dp"
28 android:orientation="horizontal"
29 app:layout_constraintBottom_toBottomOf="parent"
30 app:layout_constraintEnd_toEndOf="parent"
31 app:layout_constraintHorizontal_bias="0.487"
32 app:layout_constraintStart_toStartOf="parent"
33 app:layout_constraintTop_toBottomOf="@+id/textView"
34 android:gravity="center_vertical"
35 app:layout_constraintVertical_bias="0.251">
36
37
38 android:id="@+id/yesbutton"
39 android:layout_width="80dp"
40 android:layout_height="50dp"
41 android:layout_weight="1"
42 android:layout_marginLeft="40dp"
43 android:background="@drawable/yes_btn" />
44
45
46 android:id="@+id/nobutton"
47 android:layout_width="80dp"
48 android:layout_height="50dp"
49 android:layout_marginRight="40dp"
50 android:layout_marginLeft="20dp"
51 android:layout_weight="1"
52 android:background="@drawable/no_btn" />
53
54
3、菜单布局设计文件路径(menu/optaionsmenu.xml)
android:id="@+id/zhuiju"/>
android:id="@+id/shopping"
/>
android:id="@+id/study"/>
android:id="@+id/music"/>
android:id="@+id/exit"/>
三、功能实现
1、MainActivity.java
1 package com.example.optionsmenu;
2
3 import androidx.annotation.NonNull;
4 import androidx.appcompat.app.AppCompatActivity;
5
6 import android.content.Intent;
7 import android.net.Uri;
8 import android.os.Bundle;
9 import android.view.Menu;
10 import android.view.MenuItem;
11
12 public class MainActivity extends AppCompatActivity {
13
14 @Override
15 protected void onCreate(Bundle savedInstanceState) {
16 super.onCreate(savedInstanceState);
17 setContentView(R.layout.activity_main);
18
19 }
20
21 @Override
22 public boolean onCreateOptionsMenu(Menu menu) {
23 getMenuInflater().inflate(R.menu.optionsmenu,menu);
24 return true;
25 }
26
27 @Override
28 public boolean onOptionsItemSelected(@NonNull MenuItem item) {
29 switch (item.getItemId()){
30 case R.id.zhuiju:
31 Intent intent=new Intent();
32 intent.setAction(Intent.ACTION_VIEW);
33 intent.setData(Uri.parse("https://www.iqiyi.com/"));
34 startActivity(intent);break;
35 case R.id.shopping:
36 Intent intent2=new Intent();
37 intent2.setAction(Intent.ACTION_VIEW);
38 intent2.setData(Uri.parse("https://www.quanbk.cn"));
39 startActivity(intent2);break;
40 case R.id.music:
41 Intent intent3=new Intent();
42 intent3.setAction(Intent.ACTION_VIEW);
43 intent3.setData(Uri.parse("https://www.quanbk.cn/yy"));
44 startActivity(intent3);break;
45 case R.id.study:
46 Intent intent4=new Intent();
47 intent4.setAction(Intent.ACTION_VIEW);
48 intent4.setData(Uri.parse("https://www.bilibili.com/"));
49 startActivity(intent4);break;
50 case R.id.exit:
51 mydialog mydialog=new mydialog(this,R.style.mydialog);
52 //实例化mydialog设置参数( 参数1:环境上下文 (这里设置this), 参数2:导入样式R.style/样式名)
53 mydialog.show();//展示效果
54 break;
55
56
57
58
59 }
60
61 return super.onOptionsItemSelected(item);
62 }
63 }
2、自定义对话框功能实现 mydailog.java
1 package com.example.optionsmenu;
2
3 import android.app.Dialog;
4 import android.content.Context;
5 import android.view.View;
6
7 import androidx.annotation.NonNull;
8
9 public class mydialog extends Dialog {
10 public mydialog(@NonNull Context context, int themeResId) {
11 super(context, themeResId);
12 setContentView(R.layout.dialog_main);
13
14 //YES按钮安装监听器,实现响应功能
15 findViewById(R.id.yesbutton).setOnClickListener(new View.OnClickListener() {
16 @Override
17 public void onClick(View v) {
18 System.exit(0); //自定义对话框点击YES按钮时,执行退出
19 }
20 });
21 //NO按钮安装监听器,实现响应功能
22 findViewById(R.id.nobutton).setOnClickListener(new View.OnClickListener() {
23 @Override
24 public void onClick(View v) {
25 dismiss(); //自定义对话框点击NO按钮时,取消
26 }
27 });
28 }
29
30 }
四、Values属性值设置:
1、color.xml 颜色设置
1 <?xml version="1.0" encoding="utf-8"?>
2
3 #FBDA03
4 #FBDA03
5 #FBDA03
6
7
2、Style.xml 样式设置
1
2
3
4
5
6 @color/colorPrimary
7 @color/colorPrimaryDark
8 @color/colorAccent
9
10
11
12 true
13
14 @android:color/transparent
15
16
17
原文:https://www.cnblogs.com/adf520/p/12793744.html