Android复习选项菜单、自定义对话框、隐式跳转制作一个综合小demo
————安德风QQ1652102745
一、最终效果演示:
二、布局设计
1、界面布局设计 Activity_main.xml
1 <?xml version="1.0" encoding="utf-8"?> 2 <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" 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 <ImageView 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 </androidx.constraintlayout.widget.ConstraintLayout>
2、自定义对话框布局设计 (dailog.xml)
1 <?xml version="1.0" encoding="utf-8"?> 2 <androidx.constraintlayout.widget.ConstraintLayout 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 <TextView 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 <LinearLayout 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 <Button 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 <Button 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 </LinearLayout> 54 </androidx.constraintlayout.widget.ConstraintLayout>
3、菜单布局设计文件路径(menu/optaionsmenu.xml)
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:title="追剧" android:id="@+id/zhuiju"/> <item android:title="购物" android:id="@+id/shopping" /> <item android:title="学习" android:id="@+id/study"/> <item android:title="音乐" android:id="@+id/music"/> <item android:title="退出" android:id="@+id/exit"/> </menu>
三、功能实现
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 <resources> 3 <color name="colorPrimary">#FBDA03</color> 4 <color name="colorPrimaryDark">#FBDA03</color> 5 <color name="colorAccent">#FBDA03</color> 6 7 </resources>
2、Style.xml 样式设置
1 <resources> 2 3 <!-- Base application theme. --> 4 <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 5 <!-- Customize your theme here. --> 6 <item name="colorPrimary">@color/colorPrimary</item> 7 <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 8 <item name="colorAccent">@color/colorAccent</item> 9 </style> 10 <!-- 设置自定义对话框样式:①导入对话框样式模板 --> 11 <style name="mydialog" parent="android:style/Theme.Dialog"> 12 <item name="android:windowNoTitle">true</item> 13 <!-- 设置关闭自定义对话框标题 --> 14 <item name="android:windowBackground">@android:color/transparent</item> 15 <!-- 设置自定义对话框背景颜色为透明 --> 16 </style> 17 </resources>