zoukankan      html  css  js  c++  java
  • 第一行代码——探索活动

    1、项目中的所有活动都要重写onCreat()方法

    2、通过setContentView()加载一个布局活动

    3、定义一个ID,+id,引用ID,id

    4、活动在ActivityManifest中注册 活动 权限等。

    在<application>

    <activity

    name .类名

    lable

    >

      <intent-filter>

        <action adroid:name = "android.intent.action.MAIN"/>

        <category android:name = "android.intent.category.LAUNCHER"/>

      </intent-filter>

    </activity>

    5、没有声明一个活动作为主活动,则无法在启动器中看到这个程序,一般作为第三方服务供其他的应用在内部进行调用,如微信,支付宝支付。

    6、隐藏标题栏的方法

      在onCreate()方法中添加如下代码:

        requestWindowFeature(Window.FEATURE_NO_TITLE);

        必须在setContentView()之前执行。

    7、在活动中使用Toast

      一种提醒方式,将一些短小的信息通知给用户,然后一段时间后自动消失。

      在onClick中添加

      通过静态方法makeText()方法创建,三个参数传入,第一个:Content上下文,类名.this或者直接this;第二个:文本内容;第三个:Toast显示的时长,两个内置常量可选:Toast.LENGTH_SHORT和Toast.LENGTH_LONG.

      Toast.makeText(MainActivity.this, "我是一个BUTTON", Toast.LENGTH_SHORT).show();
    8、在活动中使用Menu
      新建一个menu文件夹
      <menu>
        <item
          android:id="@+id/add_item"
          android:title="add"
        />
    </menu>
    然后重写onCreateOtionsMenu()方法
    XML文件中:
    <menu xmlns:android="http://schemas.android.com/apk/res/android">

    <item
    android:id="@+id/add_item"
    android:title="Add"
    />
    <item
    android:id="@+id/remove_item"
    android:title="Remove"
    />
    </menu>
    Java代码:
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main,menu);
    return true;
    }
    通过getMenuInflater()得到MenuInflater对象,再调用inflate()方法就可以给当前活动创建菜单,接受的两个参数:通过哪一个资源文件创建菜单,我们的菜单想将添加到哪一个Menu对象中。最后返回true,表示显示出来。
    为菜单项创建响应事件:就要重写onOptionsItemSelected()
    item.getItemId()来判断是哪一个菜单
    9、通过finish()方法销毁活动
    10、Intent的使用:启动活动、启动服务、发送广播。分为显式和隐式
    用startActivity()接受Intent
    bt_haha.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    Log.d("data", "bt_hahaha");
    Toast.makeText(MainActivity.this, "我是一个BUTTON", Toast.LENGTH_SHORT).show();
    //第一个为上下文,第二个为class指定的启动目标
    Intent intent = new Intent(MainActivity.this,SecondClass.class);
    startActivity(intent);
    }
    });
    以上为显示
    下面是隐式:
    <intent-filter>
    <action android:name="hello.one.yhm.com.myfrist.ACTION_START"/>
    <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
    Java:
    bt_second.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    Intent intent = new Intent("hello.one.yhm.com.myfrist.ACTION_START");//包名加自己定义,大写
    startActivity(intent);
    }
    });
    <action>只能有一个 <category>可以有多个
    intent.addCategory("hello.one.yhm.com.myfrist.MY_CATEGORY");//addCategory()方法来添加,并要在xml中声明
    <intent-filter>
    <action android:name="hello.one.yhm.com.myfrist.ACTION_START"/>
      <category android:name="android.intent.category.DEFAULT"/>
       <category android:name="android.intent.category.MY_CATEGORY"/>
    </intent-filter>

    隐式的Intent可启动自己程序内的活动,还可以启动其他程序的活动,使得多个应用程序之间功能共享成为可能。如:需展示一个网页,不需自己实现一个浏览器,只需要调用系统的浏览器打开网页
     bt_second.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    // Intent intent = new Intent("hello.one.yhm.com.myfrist.ACTION_START");
    // intent.addCategory("hello.one.yhm.com.myfrist.MY_CATEGORY");//addCategory()方法来添加,并要在xml中声明
    // startActivity(intent);
    Intent intent = new Intent(Intent.ACTION_VIEW);//系统内置的动作
    //Uri.parse()方法将网址字符串解析为Uri对象
    //intent的setData()方法传递uri对象
    intent.setData(Uri.parse("http://www.baidu.com"));
    startActivity(intent);
    }
    });
    还可以在<intent-filter>中配置一个<data>标签,用于更精确的指定当前活动能够响应什么数据类型,配置内容如下:

    android:scheme协议部分 host主机名 port端口 path主机名和端口之后的部分 mimeType可以处理的数据类型,不会指定过多的内容,浏览器中指定一个scheme就可以响应所有的http协议
    调用系统相机http://cowboy.1988.blog.163.com/blog/static/75105798201422645818776/
    如果您看见了我的文章,希望得到您的支持,由衷感谢!
  • 相关阅读:
    VirtualBox 下USB 设备加载的步骤及无法加载的解决办法
    浅析:setsockopt()改善socket网络程序的健壮性
    减小Gcc编译程序的体积
    linux下查看系统进程占用的句柄数
    Linux下高并发socket最大连接数所受的各种限制
    spring-jpa通过自定义sql执行修改碰到的问题
    阿里巴巴Java开发手册中的DO、DTO、BO、AO、VO、POJO定义
    sql select时增加常量列
    CASE WHEN 及 SELECT CASE WHEN的用法
    MYSQL常见运算符和函数
  • 原文地址:https://www.cnblogs.com/h4ck/p/5368951.html
Copyright © 2011-2022 走看看