DAY02 活动的基本用法
1.活动是什么
活动(Activity)是一种可以包含用户界面的组件,主要用于和用户交互。
在Android Studio中,创建项目的时候就可以新建一个活动,或者右击包,选择新建一个活动。可以看到所有的活动都是继承自AppCompatActivity类的。
2.创建和加载布局
在res目录下先建一个layout目录,然后新建一个布局文件。可以看到可视化编辑器界面。要让布局显示出来,需要在活动中加载布局,在onCreate()方法中加入如下代码:
setContentView(R.layout.first_layout); //first_layout是新建的布局文件名
在setContentView()方法中,会传入一个布局文件的id。项目中添加的任何资源都会在R文件中生成一个相应的资源id。
所有的活动都要在AndroidManifest.xml文件中注册,打开AndroidManifest.xml文件可以看到,活动的注册声明是放在标签内,在新建活动时as自动帮我们注册好了。
仅仅是这样程序仍然不能运行,因为还没有为程序配置主活动。配置主活动要在标签内部加入标签,并在这个标签里添加
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
这两句声明即可。
还可以使用andorid:label 指定活动中标题栏的内容
<activity android:name=".FirstActivity"
android:label="This is FirstActivity">
3.在活动中使用Toast
Toast是Android系统提供的一种提醒方式,类似于.net中的MessageBox
在活动中可以通过findViewById()方法获取到在布局文件中定义的元素,findViewById()返回的是一个View对象,我们需要将它强制转成Button类型。
Toast的用法是通过静态方法makeText()创建出一个Toast对象,调用show()将Toast显示出来就可以了。
makeText()方法传入3个参数,第一个参数Context(上下文),活动本身就是一个Context对象;第二个参数是Toast显示的文本内容,第三个参数是Toast显示的时长,有两个常量选择:Toast.LENGTH_SHORT和Toast.LENGTH_LONG。
让点击按钮的时候弹出一个Toast,有四种实现方式。
- 1.在onCreate()方法中添加如下代码:
public class MainActivity extends AppCompatActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 设置内容UI,把界面加载出来
setContentView(R.layout.activity_main);
// 1.找到界面上按钮
Button bt_click = (Button) findViewById(R.id.bt_click);
// 2.点击按钮的时候触发相应点击事件
bt_click.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
System.out.println("hhh,我被点击了");
// context 默认的上下文,代表的是吐司显示在哪个界面上
Toast.makeText(MainActivity.this, "hhh, 我被点击了", Toast.LENGTH_SHORT).show();
}
});
}
}
这是使用了匿名内部类的方法
- 2.自己封装一个点击监听类
public class MainActivity extends AppCompatActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 设置内容UI,把界面加载出来
setContentView(R.layout.activity_main);
// 1.找到界面上按钮
Button bt_click = (Button) findViewById(R.id.bt_click);
// 第二种点击监听实现方式
bt_click.setOnClickListener(new MyClickListener());
}
// 第二种点击监听实现方式
class MyClickListener implements View.OnClickListener {
@Override
public void onClick(View v) {
System.out.println("hhh,我被点击了");
Toast.makeText(MainActivity.this,"hhh,我被点击了", Toast.LENGTH_SHORT).show();
}
}
}
- 3.活动类实现View.OnClickListener这个抽象类,重写onCLick方法
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 设置内容UI,把界面加载出来
setContentView(R.layout.activity_main);
// 1.找到界面上按钮
Button bt_click = (Button) findViewById(R.id.bt_click);
// 第三种点击监听实现方式
bt_click.setOnClickListener(this);
}
// 第三种点击监听实现方式
@Override
public void onClick(View v) {
System.out.println("hhh,我被点击了");
Toast.makeText(this,"hhh,我被点击了", Toast.LENGTH_SHORT).show();
}
}
- 4.在布局文件中的Button标签里注册onClick属性:android:onClick=“click”,在活动类中写click方法
public void click(View view) {
System.out.println("hhh,我被点击了");
Toast.makeText(this,"hhh,我被点击了", Toast.LENGTH_SHORT).show();
}