美文网首页
《Android》Lesson03-监听器、Toast

《Android》Lesson03-监听器、Toast

作者: kamin | 来源:发表于2016-09-22 05:36 被阅读170次

Week02    2016/09/22上午1-4节

一、复习:新建一个空的AS项目Chap2AsProj

MainActivity.java(在目录Chap2AsProj\app\src\main\java\com\kamin\dr\chap2asproj)

activity_main.xml(在目录Chap2AsProj\app\src\main\res\layout)

strings.xml(在目录Chap2AsProj\app\src\main\res\values)

R.java(Chap2AsProj\app\build\generated\source\r\debug\com\kamin\dr\chap2asproj中)

AndroidManifest.xml(在目录Chap2AsProj\app\src\main)

二、Hello World!使用String.xml表示

三、activity_main.xml增加一个Button

String.xml设置btnText

了解activity_main.xml<Button>元素的属性layout_width,layout_height

代码提示快捷键:Ctrl+Alt+Space(空格键)

四、Button的使用

API参考链接Package Index - Android SDK

Android学习优秀网站 - 简书

1,findViewById

2,setOnClickListener

Ctr+I快捷键可以添加接口中未实现的方法

Android控件系列之Button以及Android监听器 - 王焘 - 博客园

Android成长之路-实现监听器的三种方法 - 博客频道 - CSDN.NET

Android笔记Android基于事件监听器处理机制 - Android移动开发技术文章_手机开发 - 红黑联盟

android开发中监听器的三种实现方法(OnClickListener)

第18章、基于监听器的事件处理(从零开始学Android)

android三种方法实现监听事件

android studio for android learning (十八) android事件监听器绑定的方法详解

五、Toast使用

1,Toast作用:提示信息,一段时间会消失

2,makeText()方法,show()方法

六、综合以上知识点的代码及效果截图

1,项目结构图

项目结构图

2,AndroidManifest.xml代码(默认产生的,没有修改)

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.kamin.chap2asproj">

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

</manifest>

3,string.xml代码:字符串常量尽量写在此文件中,易于修改和维护

<resources>
<string name="app_name">Chap2AsProj</string>
<string name="hello">上午好!</string>
<string name="txBtnFirst">内部接口类监听器</string>
<string name="txBtnSecond">匿名内部监听器</string>
<string name="txBtnThird">类上实现监听器</string>
<string name="hint1">my First button is Clicked!</string>
<string name="hint2">my Second button is Clicked!</string>
<string name="hint3">my Third button is Clicked!</string>
</resources>

4,activity_main.xml代码

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.kamin.chap2asproj.MainActivity">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello"
android:id="@+id/tvHello" />

<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/txBtnFirst"
android:id="@+id/btnFirst"
android:layout_below="@+id/tvHello"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginTop="61dp" />

<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/txBtnSecond"
android:id="@+id/btnSecond"
android:layout_below="@+id/btnFirst"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginTop="32dp" />

<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/txBtnThird"
android:id="@+id/btnThird"
android:layout_below="@+id/btnSecond"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginTop="44dp" />
</RelativeLayout>

5,MainActivity.java代码:分3种方式完成了监听器,以后写代码可以选择任何1种,建议使用第2中匿名监听器。不管哪种监听器都必须实现(1)注册(绑定)监听器(2)实现OnClick方法

第1种监听器:

//在onCreate方法内注册监听器

//setOnClickListener的参数为自定义监听器类MyOnClickListener的对象

btnFirst.setOnClickListener(new MyOnClickListener());//监听器1绑定监听器,可以理解成:把门铃装在你家大门上

//在类MainActivity内定义内部类MyOnClickListener 作为监听器

/*自定义的监视器,可以理解成你的门铃*/
class MyOnClickListener implements View.OnClickListener{
@Override
public void onClick(View view) {
System.out.println("按钮被单击!*****");
Toast.makeText(MainActivity.this,R.string.hint1,Toast.LENGTH_LONG).show();
}
}

第2种监听器:(推荐使用)

//在onCreate方法内注册监听器

//setOnClickListener的参数为匿名监听器,注册监听器和监听器的实现用一条语句完成

btnSecond.setOnClickListener(new View.OnClickListener(){//监听器2匿名监听器
@Override
public void onClick(View view) {
Toast.makeText(MainActivity.this,R.string.hint2,Toast.LENGTH_SHORT).show();
}
});

第3种监听器:

//本类必须实现接口View.OnClickListener,本类就是一个监听器

public class MainActivity extends AppCompatActivity implements View.OnClickListener

//在onCreate方法内注册监听器

//setOnClickListener的参数是this,由于本类就是监听器

btnThird.setOnClickListener(this);//监听器3本类就是一个监听器

//由于本类MainActivity实现了接口View.OnClickListener,

//所以必须在MainActivity类中实现接口OnClickListener的抽象方法public void onClick(View view)

@Override
public void onClick(View view) {
Toast.makeText(MainActivity.this,R.string.hint3,Toast.LENGTH_LONG).show();
}


含3种监听器的全部代码如下:

package com.kamin.chap2asproj;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{
Button btnFirst,btnSecond,btnThird;//定义Button
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnFirst=(Button)findViewById(R.id.btnFirst);//界面上的button
btnFirst.setOnClickListener(new MyOnClickListener());//监听器1绑定监听器,可以理解成:把门铃装在你家大门上

btnSecond=(Button)findViewById(R.id.btnSecond);
btnSecond.setOnClickListener(new View.OnClickListener(){//监听器2匿名监听器
@Override
public void onClick(View view) {
Toast.makeText(MainActivity.this,R.string.hint2,Toast.LENGTH_SHORT).show();
}
});

btnThird=(Button)findViewById(R.id.btnThird);
btnThird.setOnClickListener(this);//监听器3本类就是一个监听器

}
/*自定义的监视器,可以理解成你的门铃*/
class MyOnClickListener implements View.OnClickListener{
@Override
public void onClick(View view) {
System.out.println("按钮被单击!*****");
Toast.makeText(MainActivity.this,R.string.hint1,Toast.LENGTH_LONG).show();
}
}

@Override
public void onClick(View view) {
Toast.makeText(MainActivity.this,R.string.hint3,Toast.LENGTH_LONG).show();
}

}

6,运行效果图

运行效果图

相关文章

网友评论

      本文标题:《Android》Lesson03-监听器、Toast

      本文链接:https://www.haomeiwen.com/subject/nwwaettx.html