《第一行代码》阅读笔记

(一)Android程序结构
1.Android-Manifest.xml
没有在Android-Manifest.xml文件中注册的活动是不能使用的。
将活动设置为主活动:
<activity android:name="   ">
    <intent_filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER"/>
    <intent_filter/>
</activity>

2.日志工具
Log.d( ) 用于打印调试信息,在debug中查看
Log.d(TAG,"message"); //TAG传入类名,用于过滤日志
tips:在全局,输入log 加Tab键 ,会以当前类名自动生成一个TAG常量  



(二)活动
part 1:activity
1.创建活动
勾选项:Generate Layout File 自动为Activity创建一个对应的布局文件
              Launcher Activity      自动将Activity设置为当前项目的主活动
              Backwards Compatibilty 为项目启动向下兼容的模式 (一定要选)

2.在活动中使用Toast
Toast.makeText( FirstActivity.this , "message" , Toast_LENGTH_SHORT ).show( );
                           上下文               传入的文本内容       显示时长

3.在活动中使用menu
 Menu resource file 新建menu文件
(1)布局文件
<menu xmlns:
    <item
        android :id="@+id/add_item"
        android :title="add"/>
    <item
        ……
<menu/>
(2)逻辑
在Activity中重写onCreateOptionsMenu( )方法  快捷键Ctrl+O
public boolean onCreateOptionsMenu(Menu menu){
    getMenuInlater().inlate(R.menu,main,menu);
    return true; //返回true,表示允许菜单显示;返回false,反之
}
     
  4.销毁一个活动
按下back键,或调用finish( )方法
补充:重写手机back键点击事件,重写onBackPressed( )方法

part 2:Intent 
1.显式Intent
意图明确:
Intent intent =new Intent ( FirstActivity.this , SecondActivity.class ) ;
startActivity(  intent ) ;

2.隐式Intent 
 通过action 和 category匹配合适的Activity去启动

 通过在<activity>标签下配置<intent-filter>的内容,指定当前活动可以响应的action 和 category.

目的activity:
<activity android : name=".SecondActivity">
        <intent-filter>
                <action android : name="    "/>
                <category android : name="   "/>
        </intent-filter>
</activity>
起点activity:
Intent intent = new Intent ( "  " );//对应action 的值
intent . addCategory("  ");
startActivity(intent);

补充:隐式Intent 可以启动程序内的活动,也可启动其他程序的活动。
          启动网页、拨打电话、获取地理位置

3.向下一个活动传递数据
通过putExtra( )方法
起点activity:
String data="kkkkkkkk";
Intent intent = new Intent (FirstActivity.this, SecondActivity.class);
intent.putExtra("extra_data",data); //putExtra( )方法接收两个参数,键值对
目的activity: 
Intent intent = getIntent();//通过getIntent()方法获取到用于启动活动的Intent
String data=intent.getStringExtra("extra_data");
如果, 传递字符串,用getStringExtra( )方法
           传递整型数据,用getIntExtra( )方法
           传递布尔型数据,用getBooleanExtra( )方法 ,以此类推。

4.返回数据给上一个活动
通过startActivityForResult( )方法 
起点activity:
Intent intent = new Intent (FirstActivity.this, SecondActivity.class);
startActivityForResult(intent, 1); //第二个参数是请求码,用于在之后的回调中判断数据的来源
目的activity:
Intent intent = new Intent(); //构建一个Intent,仅用于传递数据,没有指定任何意图
intent.putExtra("data_return","Hello!");//将要传递的数据放到Intent中
setResult(RESULT_OK,intent);
finish();
setResult( )方法接收两个参数,第一个用于向上一个活动返回处理结果,一般只使用RESULT_OK 或RESULT_CANCELED,第二个参数把带有数据的Intent传递回去。
然后调用finish( )方法销毁当前活动。

起点activity:
由于使用startActivityForResult( )方法来启动SecondActivity,在SecondActivity被销毁后会回调上一个活动的onActivityResult( )方法,因此在起点activity中重写这个方法来得到返回的数据
part 3:活动的生命周期

part 4:实践技巧



(三)UI
1.控件
android:hint  显示提示性文字

ProgressBar 
在屏幕中中心有一个原型的进度条,表示正在加载一些数据style属性可修改样式

AlertDialog
当前界面弹出对话框

ProgressDialog 
显示进度条的对话框
setCancelable( )  dismiss( )

2.布局
android:gravity 用于指定文字在控件中的对齐方式
android:layout_gravity 用于指定控件在布局中的对齐方式


(十)服务service
1.多线程
新建一个类继承自Thread,重写父类run()方法
class MyThread extends Thread{
    @override
    public void run(){
        //具体逻辑    
}
}
启动线程
new.MyThread( ).start( );










 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值