第一行代码笔记Word下载.docx

上传人:b****6 文档编号:17395211 上传时间:2022-12-01 格式:DOCX 页数:25 大小:150.87KB
下载 相关 举报
第一行代码笔记Word下载.docx_第1页
第1页 / 共25页
第一行代码笔记Word下载.docx_第2页
第2页 / 共25页
第一行代码笔记Word下载.docx_第3页
第3页 / 共25页
第一行代码笔记Word下载.docx_第4页
第4页 / 共25页
第一行代码笔记Word下载.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

第一行代码笔记Word下载.docx

《第一行代码笔记Word下载.docx》由会员分享,可在线阅读,更多相关《第一行代码笔记Word下载.docx(25页珍藏版)》请在冰豆网上搜索。

第一行代码笔记Word下载.docx

true"

icon="

@drawable/ic_launcher"

label="

@string/app_name"

android:

theme="

@style/AppTheme"

activity

name="

.FirstActivity"

/*使用android:

name来指定具体注册哪一个活动

com.example.activitytest.FirstActivity的缩写*/

ThisisFirstActivity"

intent-filter>

actionandroid:

android.intent.action.MAIN"

categoryandroid:

android.intent.category.LAUNCHER"

/intent-filter>

/activity>

/application>

/manifest>

manifest>

通过package属性指定了程序的包名是com.example.activitytest

使用了android:

label指定活动中标题栏的内容

label不仅会成为标题栏中的内容,还会成为启动器(Launcher)中应用程序显示的名称

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_NO_TITLE);

setContentView(R.layout.first_layout);

Buttonbutton1=(Button)findViewById(R.id.button_1);

button1.setOnClickListener(newOnClickListener(){

@Override

publicvoidonClick(Viewv){

Toast.makeText(FirstActivity.this,"

YouclickedButton1"

Toast.LENGTH_SHORT).show();

}

});

}

requestWindowFeature(Window.FEATURE_NO_TITLE)的意思是不在活动中显示标题栏

通过findViewById()方法获取到在布局文件中定义的元素

findViewById()方法返回的是一个View对象,向下转型将它转成Button对象

通过调用setOnClickListener()方法为按钮注册一个监听器,点击按钮时就会执行监听器中的onClick()方法

Toast通过静态方法makeText()创建出一个Toast对象,然后调用show()将Toast显示出来就可以了

makeText()方法需要传入三个参数。

第一个参数是Context,也就是Toast要求的上下文,由于活动本身就是一个Context对象,因此这里直接传入FirstActivity.this即可。

第二个参数是Toast显示的文本内容,第三个参数是Toast显示的时长,有两个内置常量可以选择Toast.LENGTH_SHORT和Toast.LENGTH_LONG

menuxmlns:

item

id="

@+id/add_item"

title="

Add"

/>

@+id/remove_item"

Remove"

/menu>

通过android:

id给这个菜单项指定一个唯一标识符

title给这个菜单项指定一个名称

然后打开FirstActivity,重写onCreateOptionsMenu()方法

publicbooleanonCreateOptionsMenu(Menumenu){

getMenuInflater().inflate(R.menu.main,menu);

returntrue;

通过getMenuInflater()方法能够得到MenuInflater对象

调用它的inflate()方法给当前活动创建菜单

inflate()方法接收两个参数,第一个参数用于指定我们通过哪一个资源文件来创建菜单,这里当然传入R.menu.main,第二个参数用于指定我们的菜单项将添加到哪一个Menu对象当中,这里直接使用onCreateOptionsMenu()方法中传入的menu参数。

然后给这个方法返回true,表示允许创建的菜单显示出来,如果返回了false,创建的菜单将无法显示。

定义菜单响应事件。

在FirstActivity中重写onOptionsItemSelected()方法:

publicbooleanonOptionsItemSelected(MenuItemitem){

switch(item.getItemId()){

caseR.id.add_item:

Toast.makeText(this,"

YouclickedAdd"

Toast.LENGTH_SHORT).show();

break;

caseR.id.remove_item:

YouclickedRemove"

default:

}

onOptionsItemSelected()方法中,通过调用item.getItemId()来判断我们点击的是哪一个菜单项

通过代码来销毁活动

button1.setOnClickListener(newOnClickListener(){

@Override

publicvoidonClick(Viewv){

finish();

});

调用Activity类提供的finish()方法销毁当前活动

 

Intent不仅可以指明当前组件想要执行的动作,还可以在不同组件之间传递数据

Intentintent=newIntent(FirstActivity.this,SecondActivity.class);

startActivity(intent);

首先构建出了一个Intent,传入FirstActivity.this作为上下文,传入SecondActivity.class作为目标活动,即在FirstActivity这个活动的基础上打开SecondActivity这个活动,startActivity()用于启动活动

隐式Intent并不明确指出我们想要启动哪一个活动,而是指定action和category等信息,由系统去分析这个Intent,并帮我们找出合适的活动去启动

在<

action>

标签中我们指明了当前活动可以响应com.example.activitytest.ACTION_START这个action,而<

category>

标签则包含了一些附加信息,更精确地指明了当前的活动能够响应的Intent中还可能带有的category。

只有<

和<

中的内容同时能够匹配上Intent中指定的action和category时,这个活动才能响应该Intent。

修改FirstActivity中按钮的点击事件:

Intentintent=newIntent("

com.example.activitytest.ACTION_START"

);

使用了Intent的另一个构造函数,直接将action的字符串传了进去,表明我们想要启动能够响应com.example.activitytest.ACTION_START这个action的活动

android.intent.category.DEFAULT是一种默认的category,在调用startActivity()方法的时候会自动将这个category添加到Intent中

每个Intent中只能指定一个action,但却能指定多个category

修改FirstActivity中按钮的点击事件,代码如下所示:

intent.addCategory("

com.example.activitytest.MY_CATEGORY"

调用Intent中的addCategory()方法来添加一个category

在Intent中新增了一个category,SecondActivity的<

标签中要有声明响应这个category

中再添加一个category的声明

activityandroid:

.SecondActivity"

<

android.intent.category.DEFAULT"

隐式Intent不仅可以启动自己程序内的活动,还可以启动其他程序的活动

修改FirstActivity中按钮点击事件的代码,如下所示:

Intentintent=newIntent(Intent.ACTION_VIEW);

intent.setData(Uri.parse("

"

));

指定了Intent的action是Intent.ACTION_VIEW,这是一个Android系统内置的动作,其常量值为android.intent.action.VIEW。

然后通过Uri.parse()方法,将一个网址字符串解析成一个Uri对象,再调用Intent的setData()方法将这个Uri对象传递进去

setData()接收一个Uri对象,主要用于指定当前Intent正在操作的数据,而这些数据通常都是以字符串的形式传入到Uri.parse()方法中解析产生的

标签中再配置一个<

data>

标签,可以更精确地指定当前活动能够响应什么类型的数据。

标签中主要可以配置以下内容。

1.android:

scheme

用于指定数据的协议部分,如上例中的http部分。

2.android:

host

用于指定数据的主机名部分,如上例中的部分。

3.android:

port

用于指定数据的端口部分,一般紧随在主机名之后。

4.android:

path

用于指定主机名和端口之后的部分,如一段网址中跟在域名之后的内容。

5.android:

mimeType

用于指定可以处理的数据类型,允许使用通配符的方式进行指定。

putExtra()方法的重载,可以把我们想要传递的数据暂存在Intent中,启动了另一个活动后,只需要把这些数据再从Intent中取出就可以了

字符串传递到SecondActivity中:

Stringdata="

HelloSecondActivity"

;

intent.putExtra("

extra_data"

data);

这里putExtra()方法接收两个参数,第一个参数是键,用于后面从Intent中取值,第二个参数才是真正要传递的数据

在SecondActivity中将传递的数据取出,并打印出来:

publicclassSecondActivityextendsActivity{

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_NO_TITLE);

setContentView(R.layout.second_layout);

Intentintent=getIntent();

Stringdata=intent.getStringExtra("

Log.d("

SecondActivity"

通过getIntent()方法获取到用于启动SecondActivity的Intentt,然后调用getStringExtra()方法,传入相应的键值,就可以得到传递的数据

Activity中有一个startActivityForResult()方法也是用于启动活动的,但这个方法期望在活动销毁的时候能够返回一个结果给上一个活动

startActivityForResult(intent,1);

使用startActivityForResult()方法来启动SecondActivity

startActivityForResult()方法接收两个参数,第一个参数还是Intent,第二个参数是请求码,用于在之后的回调中判断数据的来源

Buttonbutton2=(Button)findViewById(R.id.button_2);

button2.setOnClickListener(newOnClickListener(){

@Override

publicvoidonClick(Viewv){

Intentintent=newIntent();

intent.putExtra("

data_return"

"

HelloFirstActivity"

setResult(RESULT_OK,intent);

finish();

}

});

setResult()方法接收两个参数,第一个参数用于向上一个活动返回处理结果,一般只使用RESULT_OK或RESULT_CANCELED这两个值,第二个参数则是把带有数据的Intent传递回去,然后调用了finish()方法来销毁当前活动。

由于我们是使用startActivityForResult()方法来启动SecondActivity的,在SecondActivity被销毁之后会回调上一个活动的onActivityResult()方法,因此我们需要在FirstActivity中重写这个方法来得到返回的数据,如下所示:

@Override

protectedvoidonActivityResult(intrequestCode,intresultCode,Intentdata){

switch(requestCode){

case1:

if(resultCode==RESULT_OK){

StringreturnedData=data.getStringExtra("

Log.d("

FirstActivity"

returnedData);

onActivityResult()方法带有三个参数,第一个参数requestCode,即我们在启动活动时传入的请求码。

第二个参数resultCode,即我们在返回数据时传入的处理结果。

第三个参数data,即携带着返回数据的Intent

重写onBackPressed()方法,通过按下Back键回到FirstActivity

publicvoidonBackPressed(){

Intentintent=newIntent();

intent.putExtra("

setResult(RESULT_OK,intent);

finish();

用户按下Back键,就会去执行onBackPressed()方法中的代码

启动模式一共有standard、singleTop、singleTask和singleInstance四种,可以在AndroidManifest.xml中通过给<

activity>

标签指定android:

launchMode属性来选择启动模式

standard是活动默认的启动模式

singleTop模式可以防止重复创建栈顶活动

singleTask模式只存在一个实例

singleInstance模式实现其他程序和我们的程序可以共享这个活动的实例,共用同一个返回栈

UI

常见控件

TextView

Button

EditText

ImageView

ProgressBar

AlertDialog

ProgressDialog

基本布局

LinearLayout

RelativeLayout

FrameLayout

TableLayout

android:

gravity是用于指定文字在控件中的对齐方式,而android:

layout_gravity是用于指定控件在布局中的对齐方式

layout_weight属性使用比例的方式来指定控件的大小

在TableLayout中每加入一个TableRow就表示在表格中添加了一行

自定义控件

LinearLayoutxmlns:

layout_width="

match_parent"

layout_height="

includelayout="

@layout/title"

/LinearLayout>

通过include语句将布局引入

publicclassTitleLayoutextendsLinearLayout{

publicTitleLayout(Contextcontext,AttributeSetattrs){

super(context,attrs);

LayoutInflater

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高中教育 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1