第一讲课程记录
一些老师的话在文件中已经记录,下面主要整理步骤
新建Button
在activity_main.xml中新建一个组件,同时解决了大写问题(Mainfests中theme textALLCap)
<Button
android:id="@+id/button1"
android:text="Button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:ignore="MissingConstraints" />
组件一定有id,id在别的位置用来代替这个组件,发现没有最后一行会报错?(视频中没有提到)
新建Toast(土司?)
(在button上)
点击button触发事件用的是setOnClickListener()
public void initView(){
button1 = findViewById(R.id.button1);
//为按钮添加监听器
button1.setOnClickListener(new View.OnClickListener() {//匿名的OnClickListener接口
@Override
public void onClick(View v) {//接口都是抽象类,实现接口要重写接口中的抽象方法
//onClick方法会在button1这个按钮按下时自动被调用
Toast.makeText(MainActivity.this, "Hello MainActivity", Toast.LENGTH_LONG).show();
//上下文,显示文本,显示时长(long和short),一般用来显示提示性文本
}
});
}
具体在这一段可以看到。
(某些java基本知识要去补一下)
新建mune
在res文件夹下新建一个文件夹menu(名字必须是这个,一点都不能改)
在menu文件夹下新建一个Menu Resource File
每当添加一个新的组件(活动)都要在资源+活动中一起添加
因此,我们在menu.xml中添加
<item android:id="@+id/add_item" android:title="Add"/>
<item android:id="@+id/remove_item" android:title="Remove"/>
在MainActivity中添加
@Override
public boolean onCreateOptionsMenu(Menu menu) {//一个重写的方法,主要用来创建重写的菜单
getMenuInflater().inflate(R.menu.menu,menu);//menuRes,menu,前面的是来源于的资源(我们创建的),后面是括号里传进来的参数
//return super.onCreateOptionsMenu(menu);
return true;//保证选项菜单的顺利创建
}
可以通过直接Reply changes改变而不用直接运行(好像报错?,亟待解决)
报错提示:添加新方法需要重新启动应用。
给OptionsMenu添加点击活动(显示一个Toast)
在MainActivity中添加
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {//当选项item被选中
switch (item.getItemId()){//由于有多个item因此分支
case R.id.add_item:
Toast.makeText(this, "Add_item clicked", Toast.LENGTH_SHORT).show();
break;
case R.id.remove_item:
Toast.makeText(this, "Remove_item clicked", Toast.LENGTH_SHORT).show();
break;
}
return super.onOptionsItemSelected(item);
}