在学Android,摘自《第一行代码——Android》
布局管理
通过xml文件进行布局管理。
android:id="@+id/button_1" 为当前的元素定义一个唯一标识符,@+id用于定义,@id用于引用;android:text 为其上内容;android:layout_width和android_height控制其宽度和高度
setContentView()
加载布局,传入一个布局文件的id。如setContentView(R.layout.first_layout)
在AndroidManifest文件中注册
活动的注册声明要放在<application>标签内,通过<activity>标签来对活动进行注册的。使用android:name来指定具体注册哪一个活动,使用android:label指定活动中标题栏的内容。若要让某活动作为程序的主活动,则需加入<action android:name="android.intent.action.MAIN" />和<category android:name="android.intent.category.LAUNCHER" />。
没有主活动的程序一般作为第三方服务供其他的应用在内部进行调用。
隐藏标题栏
在setContentView()之前加入requestWindowFeature(Window.FEATURE_NO_TITLE)
按钮的设置
Button button1 = (Button) findViewById(R.id.button_1); //通过定义好的R.id.button_1生成Button对象。findViewById()返回View对象
活动中的菜单
建立./res/menu,在其下设置Android XML File文件。通过<item>标签创建菜单项(android:id给菜单项指定一个唯一标识符,android:title给菜单项指定一个名称)
通过getMenuInflater().inflate(a,b)给当前活动创建菜单,第一个参数用于指定通过哪一个资源文件创建菜单,第二个参数用于指定我们的菜单项将添加到哪一个Menu对象当中,返回true(public boolean onCreateOptionsMenu(Menu)),表示允许创建的菜单显示出来。
销毁活动
finish(),效果和按下Back键相同
使用Intent在活动之间穿梭
Intent的用法分为显式Intent和隐式Intent。
显式:第一个参数为上下文,第二个参数为目标活动
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
startActivity(intent);隐式:指定一系列更为抽象的action(指明当前活动可以响应的action)和category(附加信息)等信息,交由系统去分析这个Intent,并帮我们找出合适的活动去启动。通过在(AndroidManifest中)<activity>标签下配置<intent-filter>的内容,可以指定当前活动能够响应的action和category。只有<action>和<category>中的内容同时能够匹配上Intent中指定的action和category时,这个活动才能响应该Intent。每个Intent中只能指定一个action,但能指定多个category。
AndroidManifest.xml
<activity android:name=".SecondActivity" >
<intent-filter> <action android:name="com.example.activitytest.ACTION_START" /> <category android:name="android.intent.category.DEFAULT /> </intent-filter> </activity>FirstActivity.java
Intent intent = new Intent("com.example.activitytest.ACTION_START");
startActivity(intent);使用隐式Intent,可以启动其他程序的活动
活动之间传递数据
向下传递数据:父活动intent.putExtra(,),第一个参数为键,第二个参数为值。
子活动:Intent intent = getIntent(); //获取到用于启动该活动的Intent
String str = intent.getStringExtra(); //参数为键
向上传递数据:父活动startActivityForResult(intent, )第二个参数为请求码
子活动: 调用setResult(,)第一个参数用于向上一个活动返回处理结果,一般只使用RESULT_OK和RESULT_CANCELED,第二个参数传递数据
因此在父活动中要加入onActivityResult()得到返回的数据
当用back返回时,可以重写onBackPressed(){}
intent.setFlags() http://blog.csdn.net/berber78/article/details/7278408
从一个Activity(a)到另一个Activity(b),且需要第二个Activity返回结果时,要到:
a中,startActivityForResult(Intent intent, Int requestCode)
b中,setResult(int resultCode, Intent intent)
a中,onActivityResult(Int requestCode, Int resultCode, Intent intent)