zoukankan      html  css  js  c++  java
  • [android] 手机卫士欢迎细节和主界面

    splash界面的细节

    ctrl + O 搜索

    在去标题的时候,对话框主题被去掉了,有点丑,现在既要有新版本的对话框又不显示标题

    把清单文件中activity节点的主题去掉

    进入到application节点的样式设置文件里面,添加一句

     <item name="android:windowNoTitle">true</item>

    设置点返回和空白地方对话框不消失

    调用AlertDialog.Builer对象的setCancelable(false),强制升级的时候

    或者设置取消监听器

    两种上下文的区别

    当显示对话框的时候,如果使用getApplicationContext()来得到上下文,此时报错

    BadTokenException

    对话框是Activity的一部分

    对话框是挂载在Activity上的,ActivityContext的子类

    父亲类有的子类一定有

    子类有的父类不一定有

    XxxActivity.this生命周期短一点,和activity一致,用的多一点

    getApplicationContext()生命周期长一点,和应用一致

    应用程序的主界面

    九宫格的布局,使用<GridView/>布局

    GridViewListView是两兄弟,设置三列 , android:numColumns=”3”

    设置内部条目垂直的距离,android.verticalSpacing=”10dp”

    获取GridView对象

    调用GridView对象的setAdapter(adapter)对象,参数:Adapter对象

    Adapter是接口,使用内部类继承BaseAdapter类来定义

    定义文字数据,静态String[] names数组,{“手机防盗”,”通讯卫士”}

    定义图片数据,静态 int[] icons数组,{R.drawable.xxx,xxxxxxx}

    创建一个内部类MyAdapter继承BaseAdapter

    重写getCount(),方法,return names的长度length属性

    重写getView()方法,

    定义一个布局文件,列表中的每一项,上面是图片,下面是文字

    调用View.inflate(),参数:上下文,资源,null

    调用View对象的findViewById()方法,找到内部的控件,设置文字和图片

    调用ImageView对象的setImageResource(),参数:icons[position]

    代码:

    package com.qingguow.mobilesafe;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.BaseAdapter;
    import android.widget.GridView;
    import android.widget.ImageView;
    import android.widget.TextView;
    
    public class HomeActivity extends Activity {
        private GridView gv_home_list;
        private MyAdapter mAdapter;
        private static String[] names={
            "手机防盗","通讯卫士","软件管家",
            "进程管理","流量统计","手机杀毒",
            "缓存清理","高级工具","设置中心"
        };
        private static int[] icons={
            R.drawable.safe,R.drawable.callmsgsafe,R.drawable.app,
            R.drawable.taskmanager,R.drawable.netmanager,R.drawable.trojan,
            R.drawable.sysoptimize,R.drawable.atools,R.drawable.settings
        };
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_home);
            gv_home_list=(GridView) findViewById(R.id.gv_home_list);
            mAdapter=new MyAdapter();
            gv_home_list.setAdapter(mAdapter);
        }
        private class MyAdapter extends BaseAdapter{
    
            @Override
            public int getCount() {
                // TODO Auto-generated method stub
                return names.length;
            }
    
            @Override
            public Object getItem(int arg0) {
                // TODO Auto-generated method stub
                return null;
            }
    
            @Override
            public long getItemId(int arg0) {
                // TODO Auto-generated method stub
                return 0;
            }
    
            @Override
            public View getView(int arg0, View arg1, ViewGroup arg2) {
                View view=View.inflate(HomeActivity.this, R.layout.list_home_item, null);
                TextView tv=(TextView) view.findViewById(R.id.tv_listhome_name);
                tv.setText(names[arg0]);
                ImageView iv=(ImageView) view.findViewById(R.id.iv_listhome_icon);
                iv.setImageResource(icons[arg0]);
                return view;
            }}
    }

    activity_home.xml

    <?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:orientation="vertical" >
    
        <TextView
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:background="#ccc"
            android:gravity="center"
            android:text="功能列表"
            android:textSize="20sp" />
    
        <GridView
            android:layout_marginTop="10dp"
            android:verticalSpacing="10dp"
            android:id="@+id/gv_home_list"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:numColumns="3" />
    
    </LinearLayout>

    list_hone_item.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:orientation="vertical" >
        <ImageView 
            android:id="@+id/iv_listhome_icon"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:src="@drawable/safe"/>
        <TextView 
            android:id="@+id/tv_listhome_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="手机防盗"/>
    
    </LinearLayout>
  • 相关阅读:
    测试AtomicInteger的可见性、有序性、原子性
    java实现hssf导出excel文件及自定义选择路径工具类
    map转换成com.google.gson.JsonObject
    String[]转List<String>
    classLoader打破双亲委托机制
    类加载器的加密解密
    自定义类加载器和父委托机制
    java中获取项目路径
    JVM内置三大类加载器详细介绍
    初识继承和多态
  • 原文地址:https://www.cnblogs.com/taoshihan/p/5357462.html
Copyright © 2011-2022 走看看