目录
Activity
1. 创建一个activity
- generate a layout file是是否生成布局文件,点击选中
- launcher activity代表是否作为启动类,先不进行选中
- 创建结束后,在manifest.xml中会添加一段关于login的声明
点之前代表的是省略的包名路径
如何在后期修改loginactivity为启动类?
启动类只能有一个,修改了一个之后要把另一个的启动类变成非启动类
- 把<intent-filter>标签里的内容粘贴进LoginActivity的标签中,然后把exported属性的false改为true
- 同理,把原来为启动类的MainActivity的<intent-filter>去掉,把true改为false
效果如下:
修改前:
修改后:
<activity
android:name=".LoginActivity"
android:exported="true" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".MainActivity"
android:exported="false">
</activity>
XML的标记补充
头标记,不需要包含东西的话,直接斜线结束:<activity …… />
如果需要再进行嵌入,则需要再添加一个尾标记</***>,然后在其中进行插入
- 如在第一个activity标签中就是只有头标签,属性放在<activity …… />中
- 第二个activity标签是完整的。形如<activity>……</activity>
在布局中添加按钮
activity_login.xml文件在设计模式下拖动按钮进入布局中,则可出现下面的代码,<Button....../>中是按钮的属性
该按钮的id是button
修改button的文字
如果想要修改button按钮上的文字,需要先在string.xml中定义字符串,再使用@引用
1. 在strings.xml中定义名为btnLoginTxt的按钮
<resources>
<string name="app_name">红柚子的APP</string>
<!-- 定义登录按钮文字的字符串-->
<string name="btnLoginTxt">点击登录</string>
</resources>
2. 再在button属性中使用 @string/字符串名 的形式进行对该字符串的引用
android:text="@string/btnLoginTxt"
java文件中为按钮添加监听事件
- 在java中创建一个button对象,使用findViewById方法把布局中的按钮和java中的按钮对象联系起来
- 添加监听器,监听对象使用匿名类,输入new后自动补全后面的代码,完成对匿名类的创建
-
在模拟器上显示浮动信息,使用toast函数,修改对应的text内容
-
在logcat中测试按钮,使用Log.d("btnclick", "按钮被点击了");
注意:
setCountView中R.layout.***引用的布局文件可以自定义,需要显示哪个布局文件就引用哪个
findViewById方法中连接的按钮也可以根据不同的按钮id进行更换
代码:
package cn.edu.sdut.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class LoginActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 加载布局文件,是第一行代码
// 通过activity_login.xml布局文件展现效果,布局效果layout.***可以任意更换
setContentView(R.layout.login_linearlayout);
// 事件点击,把布局文件中的按钮与java中的对象联系起来,使用fvi方法
Button btnLogin = findViewById(R.id.button2);
// 添加监听器,监听对象使用匿名类,输入new后自动补全后面的代码,完成对匿名类的创建
btnLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// 在logcat中测试按钮
Log.d("btnclick", "按钮被点击了");
// 在模拟器上显示浮动信息,使用toast函数,修改对应的text内容
Toast.makeText(LoginActivity.this, "按钮被点击了", Toast.LENGTH_SHORT).show();
}
});
}
}
测试效果:
布局
view视图
ViewGroup作为容器承装界面中的控件,viewgroup和view之间可以包含也可以并列,类比衣橱的隔间
属性
1. id属性:@+id/自定义id名
java中使用findViewById找到XML中的空间的id
2. 一个布局必须有高和宽属性
键入h和w即可自动补全height和width相关的字符串,
再键入m和w代表match-parent匹配父类大学)和wrap-content(匹配自身)
3. 背景:可以使用颜色或者图片
- 引用图片:使用@drawable/图片名
android:background="@drawable/summer"
- 颜色:
android:background="@color/teal_200"
新建布局文件
在layout文件夹下新建界面布局文件 resource file,命名不能出现大写字母
新建的布局文件如图:三个按钮垂直排列
若想修改为水平排列: