此文章是根据b站视频学习整理的笔记2p,穿插一些延申的内容
原视频标题:手把手教你用Android Studio写一个APP,bv号:BV1MK411p7dp
*声明控件:private Button mBtnLogin;//全局变量用m开头,局部变量用v开头
*找到控件:在onCreate中,mBtnLogin = findViewById(R.id.tv_1);
*实现跳转:
1. 直接跳转:
在onCreate中,
mBtnLogin.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) { //定义onClick方法
...
Intent intent = null;
intent = new Intent(MainActivity.this,functionActivity.class);//设定从a跳转到b
startActivity(intent);}}//实行跳转
2. 成功匹配信息后跳转:声明和找到控件步骤基本同上,在这省略
首先定义onClick方法:
public void onClick(View v){ //获取输入的信息
//从控件中提取输入信息并存入字符串
String username = mEtUser.getText().toString();
String password = mEtPassword.getText().toString();
Intent intent = null;
//匹配
if(username.equals("2021")&&password.equals("0000")){
intent = new Intent(MainActivity.this,functionActivity.class);
startActivity(intent);
}else{ }
在onCreate中,
mBtnLogin.setOnClickListener(this);//监听控件
【Q:关于setOnClickListener()】
1)含义:为控件注册一个监听器,点击按钮时就会执行监听器中的 onClick()方法
2)实现监听的方法:
*继承监听器接口:可直接使用this来调用onClick,
但类需要继承View.OnClickListener,调用的onClick需要public
*实现匿名内部类:这种方法适合想要实现一次性监听的情况,如上跳转1
*底部弹出(普通版)
String ok = "登陆成功";
Toast.makeText(getApplicationContext(),ok,Toast.LENGTH_SHORT).show();
*居中弹出(进阶版)
String fail = "登陆失败";
//设置toast
Toast toastCenter = Toast.makeText(getApplicationContext(),fail,Toast.LENGTH_ SHORT);
toastCenter.setGravity(Gravity.CENTER,0,0); //调整toast布局为居中
toastCenter.show(); //显示toast
*封装类
封装完成后可以直接引用
【Q:onCreate()和onCreateView()的区别】
前者类似于Activity中的onCreate(),可以在其中初始化除了view外的东西;
后者是创建该fragment对应的视图,必须在这里创建自己的视图并返回给调用者
*导入SlidingMenu (导入第三方库过程:)
(1) 导入源码:file->new->import module,然后找到目录导入
(2) 依赖module:file->project structure->dependencies->app->dependency,添加上一步 导入的源码
【Q:导入第三方项目通常会报错,因为使用的AS版本不一致,解决方法】
修改自己app下build.gradle信息,将版本回退到稳定的30或29
【方法一:直接在activity中使用】
在onCreate中,
//创建左滑菜单
SlidingMenu menu = new SlidingMenu(this);
menu.setMode(SlidingMenu.LEFT);
//设置触摸屏幕模式
menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
//设定菜单颜色
menu.setBackgroundColor(Color.LTGRAY);
//设置侧滑菜单布局(left_menu.xml为左侧菜单的布局文件)
menu.setMenu(R.layout.left_menu);
//将滑动菜单添入当前activity
menu.attachToActivity(this,SlidingMenu.SLIDING_CONTENT);
//设置滑动菜单的偏移量
menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
【Q:dimens尺寸配置文件使用报错,解决方法】
由于Android Studio 2.3之后,创建项目时不会默认创建该配置文件,因此只有自己创建该文件 在value目录下,在其中存入自己所需参数,然后再调用
例如:
【方法二:通过activity继承】
在onCreate中,
setBehindContentView(R.layout.left_menu);
SlidingMenu menu = getSlidingMenu();
menu.setMode(SlidingMenu.LEFT);
其他设置基本与方法一相同
【方法三:使用Fragment作为布局容器】
前两种的控件都写在了Activity中,这样代码较为臃肿,因此常用Fragment作为布局容器
【 Q:使用某些方法时,代码为什么会被划上中划线】
这是集成环境的一种提示,提示此方法已经有新的方法代替,这是过期方法,不推荐使用
*选项RadioButton组件需在RadioGroup布局中使用:
android:id="@+id/rg_1"
android:orientation="vertical">
android:id="@+id/rb_1"
android:checked="true" />> //此属性代表该选项为默认勾选
*调用
private RadioGroup radioGroup;
radioGroup = findViewById(R.id.rg_1);
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { //监听选项
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
RadioButton radioButton = findViewById(checkedId); //寻找checkedButton
Toast.makeText(MainActivity.this,radioButton.getText(),Toast.LENGTH_SHORT).show();
}}) ;//读取选中选项并弹窗提示
【Q:在xml中注释:】
【Q:报错If you are behind an HTTP proxy, please configure the proxy settings either in IDE or Gradle,解决:连接网络就好了,不知道为啥】
*布局
android:id="@+id/cb_1"
android:text="选项1"/>
*调用
private CheckBox mCB1;
mCB1 = findViewById(R.id.cb_1);
mCB1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
Toast.makeText(MainActivity.this,isChecked?"选中":"未选择",
Toast . LENGTH_SHORT ).show(); //单独设定选项1的弹框属性 }
});