Android学习笔记

更新11.12:学习路线,基本布局,基础组件,Activity介绍,对话框介绍
教材:视频《千锋android视频》


第一部分
1.1学习路线图
1.2环境搭建
1.3目录结构
     src,编写Java代码;
     gen,资源文件标示符
     assets,原生资源文件,保存音频之类的。
     bin,编译生成的apk
     libs,第三方类库的jar包
     res,资源文件
     AndroidManifest.xml清单文件,包名,版本号,相关授权


第二部分
2.1线性布局
     加载文件setContentView。必须放在程序第一行,主要是用来加载XML布局。
     字体sp,控件尺寸dp,像素px(不常用);
     线性布局嵌套太深,不适合编程。
     layout_gravity:表示子元素位于父元素的垂直位置;
     gravity:表示空间内部的元素位于该控件的位置。
     weight:权重,比例。

2.2相对布局
     基本位置位于框体的左上角。
     alignParentTop: 最顶端;
     centerVertical: 父布局中间;
     below: 指定元素下面;
     toRightOf: 指定元素右边;

2.3布局属性
     任何一个布局都有宽高两个属性。
     background: 背景颜色;
     margin:按钮位于外框体的举例(外边距)。
     padding:按钮内文字位于按钮边框位置(内边距)。
     hint:默认内容。


第三部分
3.1Button
     所有组件先设成类的成员变量,private修饰;再在onCreate方法中和xml对应。
     view和其子类都有时间触发,一般不让view直接处理,而让子类处理。
     ImageButton里面的src属性,放置图片。
     longclick包含click。
     常用setOnClickListener。
     有多个按钮设置监听器,可以让activity实现onclicklistener类,再重写onclick方法。
     click方法也可以在xml中设置onclick属性,接方法名,然后在java文件中设置这个方法,参数是View view。

3.2TextView
     inputTyple:设置键盘类型
     hint:提示信息
     string.trim();  去掉空格
     editText.setError; 出现提示错误
     使用正则表达式去校验。
     eidtText.setOnKeyListener;设置键盘监听器

3.3.AutoCompleteText
     适配器充当一个转换的功能。是一个位于视图和数据之间的桥梁
     .setAdapter  设定适配器。一般用数组适配器。
     数组适配器是ArrayAdapter<String>
     adaper =  new ArrayAdapter<String>(  this , android.R.layout. simple_list_item_1 , objcet);
     可以定义一个数组xml在strings.xml下
     String[]  citys = getResources().getStringArray(R.array. citys); 来获取strings.xml里的字符串
     或者使用createFromResource直接从Strings.xml中获取并setDropDownViewResource(  resource)。

3.5Checkbox
     在xml设置一个onclick属性onClick =  "onCheckboxClicked"
     在java中给出onCheckboxClicked(View view)方法,
     CheckBox checkBox = (CheckBox)view;
      boolean  isCheck = checkBox.isChecked();
      switch (view.getId()) {
           case R.id. checkBox1: }
     通过判断isCheck来设置行为。

3.6Radio Buttons
          设置Radio Group,里面添加Radio Buttons,设置onClick属性,设置方法和CheckBox类似。
     Toggle Buttons / Swtich
          textoff,texton属性设置切换文本。
          设置onclick属性,然后重写方法,判断boolean类型true or false

3.7spinner
     设置内容,类似autoCompleteText。
     实现OnItemSelectedListener接口,重写onItemSelected这个类,通过spinner.getItemAtPosition(position)获取选中的值。

3.8DatePicker
     设置一个DatePicker.OnDateChangedListener,使用init方法调用
     init( year, monthOfYear, dayOfMonth ,  OnDateChangedListener)  在监听器里设置相应方法。
     Calendar  calendar = Calendar. getInstance();    获得系统日期。
     year = calendar.get(Calendar. YEAR);
     monthOfYear = calendar.get(Calendar. MONTH);
     dayOfMonth = calendar.get(calendar. DAY_OF_MONTH );
     在监听器这里得到的月份需要+1。

3.9TimerPicker
     没有init方法,直接使用 setOnTimeChangedListener 设置监听内容
     还有AnalogClock和TextClock只能显示,不能设置。

3.10评分控件(未完)
     progress bar
          style属性设置样式。
          bar.setMax( )设置最大值。


第四部分
4.1Activity介绍
     OnCreate中,setContentView()设置布局。
     OnPause中,设置需要保存。
     新建的Activity需要在清单文件中注册。

4.2Acticity值传递
     使用intent filter来设置Activity动作。
     使用startActivity()来启动一个窗体。
     第一种:
          Intent intent = new Intent(MainActivity.this,NextActivity.class);
          startActivity(intent);可实现
     第二种:
          Intent intent = new Intent();
          intent.setClass(MainActivity.this,NextActivity.class);
     第三种
          Intent intent = new Intent("action");
          action要在跳转的Activity在mannifest.xml中定义action标签。再加上一个默认类别
     第四种
          intent.setAction("action");
     值传递,最大的可以传递一个List集合,类似键值对,通过intent.putExtra("name","value");
     或者传入一个bundle,给bundle.putString或其他键值对绑定到一起。
     在接受值得Activity中
     Intent intent = getIntent();
     intent.getIntExtra("name");
     或者bundle = intent.getIntExtra("bundle");   intent.getString();
     输出,使用先设置TAG,然后Log.i(TAG,value);

4.3Activity回传值
     使用startActivityForResult(intent,requestCode);
     在传值的的Activity中设置意图的setResult(  resultCodedata)方法,调用finish();
     重写方法  onActivityResult(  int requestCode,  int resultCode, Intent data)
     通过对requestCode和resultCode进行判断,可以获取data的值。

4.4Activity生命周期
     最开始:create—start—resume;
     后台运行:pause—stop;
     重新开始:restart—start—resume;
     终止:pause—start—destroy;
     在create方法中完成数据初始化和控件绑定。

4.5状态保护
     在onSaveInstanceState中保存里面的bundle
     在Activity销毁后,可以在onRestoreInstance或onCreate中获得。


 第五部分
5.1AlertDialog
     不直接使用Dialog类,使用它的子类的内部类AlertDialog.Builder。
      private AlertDialog.Builder  builder;
     builder =  new AlertDialog.Builder(  this);
     builder.setTitle( "请选择" );
     builder.setMessage( "你确定要删除吗" );
     builder.setPositiveButton(  textlistener) 设置按钮事件,确定取消类似。
     使用builder .show();让对话框显示。
     单选框使用builder.setSingleChoiceItems(  itemscheckedItemlistener)
     多选框builder.setMultiChoiceItems(  itemscheckedItemslistener)
     具体内容看API

5.2自定义对话框
     View view = LayoutInflater. from(MainActivity.  this).inflate(R.layout.  dialog ,  null );
     builder.setView(view);
     view中的控件,使用view.findViewById()来获得。
     通过这样的方式来设置。

5.3日期时间对话框
     private TimePickerDialog dialog2;
     dialog = new DatePickerDialog(this, new OnDateSetListener() {
               @Override
               public void onDateSet(DatePicker view, int year, int monthOfYear,
                         int dayOfMonth) {
                    // TODO Auto-generated method stub
               }
          }, year, monthOfYear, dayOfMonth);
     时间和日期类似。

5.4toasts
     toast.maketext(MainActivity.this,text,duration).show();
     length_short = 0; length_long = 1;
     setGravity设置位置。
     自定义toasts可以通过:
     new 新的实例new Toast(MainActivity.this),set属性修改,setView加载。
     view类似上面自定义对话框

5.5进度条对话框
      dialog =  new ProgressDialog(  this );
     可以设置setMax,setProgress。
     setCancelable(false);设置可否取消 false不可取消
1. Android 的基本概念 Android 是一个开源的操作系统,主要用于移动设备,如智能手机、平板电脑等。它基于 Linux 内核,提供了丰富的应用程序框架和 API,支持多种开发语言,如 Java、C/C++、Kotlin 等。 Android 应用程序由多个组件组成,包括活动(Activity)、服务(Service)、广播接收器(Broadcast Receiver)和内容提供器(Content Provider)等。这些组件可以组合在一起,形成复杂的应用程序。 2. Android 应用程序开发 Android 应用程序开发主要使用 Java 编程语言和 Android SDK。开发工具包括 Android Studio、Eclipse 等。 Android 应用程序的结构包括布局文件、资源文件、Java 代码和清单文件等。布局文件用于定义应用程序的用户界面,资源文件包括图像、声音、样式、主题等,Java 代码实现应用程序的逻辑,清单文件描述应用程序的组件和权限等信息。 3. Android 应用程序的调试和测试 Android 应用程序的调试和测试可以使用 Android Studio 提供的调试工具,包括断点调试、日志记录等。还可以使用模拟器或真实设备进行测试。 4. Android 应用程序的发布 发布 Android 应用程序需要进行签名和打包操作,签名用于验证应用程序的身份和完整性,打包将应用程序打包成 APK 文件,可以上传到应用商店进行发布。 5. Android 应用程序的优化 Android 应用程序的优化包括优化布局、资源、代码和网络等方面,以提高应用程序的性能和用户体验。其中,布局优化包括使用布局最优化算法、使用自定义视图等;资源优化包括压缩资源、使用向量图形等;代码优化包括使用异步任务、使用缓存等;网络优化包括使用数据压缩、使用本地存储等。 6. Android 开发的挑战 Android 开发面临的挑战包括设备碎片化、安全问题、性能问题等。设备碎片化指的是不同设备的屏幕尺寸、分辨率、操作系统版本等不同,需要对应用程序进行适配;安全问题指的是应用程序需要保证用户数据的安全和隐私;性能问题指的是应用程序需要保证快速响应和流畅运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值