XML给元素定义ID

  • 定义id android:id="@+id/button_1"
  • 引用id id/id_name

解决Failed to load Appcompat Actionbar with unknown error

  • 在Project 中找到\app\src\main\res\values\styles.xml
  • 更改<style name="AppTheme" parent="Theme.Appcompat.Light.DarkActionBar">
    <style name="AppTheme" parent="Base.Theme.Appcompat.Light.DarkActionBar">

在AndroidManifest.xml文件注册活动为主活动

<activity android:name=".FirstActivity" android:label="This is FirstActivity"//项目的标题> <intent -filter> <action android:name="android.intent.action.Main"/>//主活动 <category android:name="android.intent.category.LAUNCHER"/>//首先启动这个活动 <i/intent-filter> </activity>

在布局中添加按钮

<Button android:id="@+id/button_1"//代码中指定的名字 android:layout_width="match_parent" android:layout_height="wrap_content"//高度随内容而变 android:text="Button1" />

在主活动上 配置按钮的点击事件

Button button1=(Button) findViewById(R.id.button_1); button1.setOnClickListener(new View.OnClickListener()) { @Override public void onClick(View v) { } }

Toast 小提醒

Toast.makeText(FirstActivity.this,"text",Toast.LENGTH_SHORT/LENGTH_LONG).show();

菜单

res->menu->main(Menu resource file) <menu xmln:.. > <item android:id="@+id/add_item" android:title="Add"/> //菜单选项名字 </menu>

ctrl+o 重写onCreateOptionsMenu() 方法

public boolean onCreateOptionsMenu (Menu menu) { getMenuInflater().inflate(R.menu.main,menu); return true; }//显示菜单

重写onOptinsItemSelected 方法
public boolean onOptionsItemSeleted { swith (item.getItemId()) { switch(item.getItemId()) { case R.id.add_item: Toast.makeText(this,"you clicked add",Toast.LENGTH_SHORT).show(); break; } return true; } }

摧毁一个活动

finish();

使用intent切换活动

  • 显式切换
    Intent intent =new Intent(FirstActivity.this ,SecondActivity.class); startActivity(intent);

  • 隐式切换
  • Intent intent =new Intent ("com.example.activitytest.ACTION_START");
  • intent.addCategory("com.example.activitytest.MY_CATEGORY");
  • stratActivity(intent);//默认category
    <intent -filter>

向下一个活动传递数据

  • Intent intent=new Intent(FirstActivity.this ,SecondActivity.class);
  • intent.putExtra("extra_data",data)

  • Intent intent=getIntent();
  • String data=intent.getStringExtra('extar_data');

返回数据给上一个活动

在第一个活动中

  • Intent intent =new Intent (FirstActivity.this,SecondActivity.class);
  • startActivityForResult(intent,1)//1为请求码

  • switch(requestCode){//重写onActivityResult方法
    case 1:
    if(resultCode==RESULT_OK)
    {
    String returnedData=data.getStringExtra("data_return");
    }
    }

在第二个活动中

按钮退出

  • Intent intent=new intent();
  • intent.putExtra("data_return","Hello Fiffff..")
  • setResult(RESULT_OK,intent)//对应上面的forresult方法 第一个参数两个值 RESULT_CANCELED
  • finash();‘

back退出 重写onBackPressde()方法
内容与上面一样

按钮排列bug

  • The layout editor allows you to place widgets anywhere on the canvas, and it records the current position with designtime attributes (such as layout_editor_absoluteX.) These attributes are not applied at runtime。
  • 点击这个 infer constraints

活动回收栈 保存临时数据

  • 重写onSaveInstanceState()方法
  • outState.putString("data_key",tempData);

  • 在onCreate方法中有
  • if (savedInstanceState!=null)
    {
    String tempData=savedInstanceState.getString("data_key");
    }

活动的启动模式

  • 四种 standard singleTop singleTask singleInstance
  • 在mainfest.xml中注册 android:launchMode="singleTop"
  • standard 每次启动都会创建一个新的活动
  • singleTop 在栈顶时创建不会创建新的 而是直接用当前的 不在栈顶时创建新的
  • singleTask 有活动时 这个活动之上的活动都出栈 没有活动时直接创建
  • singleInstance 这个活动会创建新的栈

启动活动的最佳写法

p74

Android Studio 学习(一)的更多相关文章

  1. Android Studio 学习 - 基本控件的使用;Intent初学

    Android Studio学习第三天. 今天主要学习 1. RadioButton.CheckBox.RatingBar.SeekBar等基础控件的使用. 结合Delphi中相类似的控件,在这些基本 ...

  2. Android Studio 学习笔记(一)环境搭建、文件目录等相关说明

    Android Studio 学习笔记(一)环境搭建.文件目录等相关说明 引入 对APP开发而言,Android和iOS是两大主流开发平台,其中区别在于 Android用java语言,用Android ...

  3. Android Studio学习笔记

    转:http://stormzhang.com/devtools/2014/11/25/android-studio-tutorial1 背景 相信大家对Android Studio已经不陌生了,An ...

  4. Android Studio 学习 - HelloWorld

    今天是学习Android Studio的第2天,加油! 1. 首先要记录下使用Android Studio的一个代码自动完成的功能.平常基本上用Delphi,乍一换工具,各种不习惯,或者说不熟悉.按照 ...

  5. Android Studio 学习 - 程序安装

    痛定思痛,从今天开始专心学习AndriodStudio.希望以此为契机,把Java学扎实.更希望自己能坚持下去,不要半途而废. 记录一些日常的工作以及碰到的问题,权当勉励自己.荀子曰:吾尝终日而思矣, ...

  6. Android Studio 学习笔记(1)

    最近从Eclipse转到Android Studio IDE,很多东西需要学习,本文是个记录. 项目结构 在Anroid Studio 中,一个Project 包括多个Module,每个Module下 ...

  7. Android Studio 学习笔记1.1 创建自己的第一个安卓项目并且打包APK

      自从上一次安装完安卓开发工具Android Studio后抽时间看视屏尝试编写自己的第一个安卓项目约两周的时间 每天下班后会花上1~2小时的时间去学习 目前的成果如下:次元宅的我.apk 嘛 总而 ...

  8. android studio学习----gradle配置

    转载地址:http://blog.csdn.net/loongggdroid/article/details/47037413 1.gradle的简单介绍 Gradle是可以用于Android开发的新 ...

  9. android studio学习---快捷键

    快捷键学习  TIPS: 1.异常代码块  或者自定义代码块结构  Ctrl+Alt+T  或者   File | Settings | File and Code Templates When yo ...

  10. Android Studio 学习笔记(四):Adapter和RecyclerView说明

    在现版本中,滚动控件有多种,而相比于ListView,GridView,RecyclerView的用途更广,因此将前两者作为Adapter适配器的引入,再对RecyclerView进行简单讲解. MV ...

随机推荐

  1. JAVA线程池的实际运用

    线程池的创建 我们可以通过ThreadPoolExecutor来创建一个线程池 /** * @param corePoolSize 线程池基本大小,核心线程池大小,活动线程小于corePoolSize ...

  2. LabVIEW(七):多态VI

    1.多态VI概念:可以处理多种不同数据类型的VI被称为“多态VI”.多态VI根据输入或输出的 数据类型,再选择调用一个针对这种数据类型实现功能的VI,这些针对某种数据类型实现功能的VI称作“实例VI” ...

  3. Target优化

    优化目标主要包括以下几方面: 1 优化平面文件 如果目标平面文件在某机器的共享目录下,则该机器最好是专门用于文件存储的,如果还应用于其他非文件存储任务,则会降低加载效率 如果Integration s ...

  4. 【PHP篇】输出方法

    php开始处加:error_reporting(E_ALL & ~E_NOTICE);  //不打印注意 echo: echo “字符串”;   //也可为单引号 echo $变量名; ech ...

  5. 阿里P8架构师讲述:3—5年程序员的发展和出路在哪里?

    工作3—5年后,程序员们的成长将迈入一个全新阶段.这既是程序员们的黄金时期同时又是最迷茫的时期,因为大家必须要要思考一下今后的职业方向. 3—5年程序员的发展和出路在哪里? 是继续做技术人,还是向管理 ...

  6. mongoose的基本操作方法

    mongoose 1. const mongoose = require("mongoose");导入mongoose模块 2. //注意url地址最后面的地址是数据库的名称    ...

  7. HP服务器设置iLO

    HP服务器设置iLO步凑 1.开机出现界面—按下F11进入Boot Menu: 2.选择Generic USB Boot回车: 3.选择System Configuration回车: 4.选择iLO ...

  8. Spring 依赖注入方式详解(四)

    IoC 简介 平常的Java开发中,程序员在某个类中需要依赖其它类的方法. 通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理. Spring提出了依赖注入的思想 ...

  9. java为什么用咖啡?

    2000年度的JavaOne国际会议大厅热闹非凡,一阵阵浓郁的咖啡味儿香气扑鼻.从世界各地汇集到旧金山参加会议的Java精英们兴奋异常,排着长队,等待得到一杯由Java语言控制的咖啡机煮制的免费咖啡. ...

  10. 分析 Oracle SQL 执行计划的关注点

    本文内容摘自<剑破冰山--Oracle开发艺术>一书. 1.判定主要矛盾 在遇到复杂 SQL 语句时,执行计划也非常复杂,往往让人分析起来觉得无从下手,此时应避免顺序解决问题,而是快速定位 ...