Android代码心得1-java编写UI

这学期选了嵌入式这门课,选择了用做项目代替实验。项目最后需要一个APP来验收,所以我开始学习Android开发了,但难受的是,我完全没有java基础,而且现在从头开始学也不现实,所以选择了边做项目边学。
首先开始的是做一个UI,UI可以用xml制作,这种方法与之前做Matlab的gui差不多,另一种方法是用java代码编写,跟着例程,我写好了一个UI,下面开始分析Android Studio中的语法。



public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        FrameLayout flout=new FrameLayout(this);
        flout.setBackgroundResource(R.mipmap.test1);
        setContentView(flout);
        TextView text1=new TextView(this);
        text1.setText("开始游戏");
        text1.setTextSize(TypedValue.COMPLEX_UNIT_SP,18);
        text1.setTextColor(Color.rgb(255,255,255));
        FrameLayout.LayoutParams flout2=new  FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);
        flout2.gravity= Gravity.CENTER;
        text1.setLayoutParams(flout2);
        text1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                new AlertDialog.Builder(MainActivity.this).setTitle("系统提示")
                        .setMessage("别玩")
                            .setPositiveButton("我要玩",
                                    new DialogInterface.OnClickListener() {
                                        @Override
                                        public void onClick(DialogInterface dialog, int which) {
                                            Log.i("一个游戏","进入游戏");
                                        }
                                    }).setNegativeButton("我不玩", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Log.i("一个游戏","退出游戏");
                        finish();   // 结束当前activity
                    }
                }).show();
            }
        });

            flout.addView(text1);
    }
}


提取了MainActixity.java的主要部分,在写代码的时候总结了几点:
1、AS编写代码时,写了前半部分会自动联想后半部分,而且一段代码不符合语法马上标红,一般来说不容易出现语法错误
1、AS中java严格区分大小写
2、AS中java的点"." 逗号",“空格” “用法都很严格,三种符号都可作为代码间的分隔,但其用法不一样,观察可以得知:
(1)关键字后接标识符是空格,new与新建的对象之间也是空格,如 FrameLayout flout=new FrameLayout(this);
(2)对标识符进行操作的时接的”.",如flout2.gravity= Gravity.CENTER;
特别是set……的操作,监听器事件中的操作也是以".“开头
(3)多个参数之间用”,"分隔,如 text1.setTextColor(Color.rgb(255,255,255));
3、分析代码框架
(1)
-新建布局文件floutFrameLayout flout=new FrameLayout
-设置背景图setBackgroundResource
-应用布局文件setContentView
-新建文本框TextView text1=new TextView
-设置文本框内容text1.setText
-字体大小 text1.setTextSize
-颜色text1.setTextColor
(2)
-再新建一个布局文件flout2
FrameLayout.LayoutParams flout2=new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);
与第一个布局文件不同的是,LayoutParams封装有一个View的布局参数,如位置,高度等。
-然后定义位置flout2.gravity= Gravity.CENTER;
-对上面的text1应用布局文件text1.setLayoutParams(flout2);
-为text1建立一个监听器text1.setOnClickListener(new View.OnClickListener()
要注意的是,监听器后的括号后半部分并不在这里,而是在对监听器设置完事件之后,写完上面代码AS会自动产生监听器事件的头文件
-在头文件下面新建一个对话框,设置对话框信息
new AlertDialog.Builder(MainActivity.this).setTitle("系统提示")
setMessage("别玩")
-new一个按钮,设置监听器
setPositiveButton("我要玩", new DialogInterface.OnClickListener() {
-设置监听器事件,并输出日志
public void onClick(DialogInterface dialog, int which) {
Log.i("一个游戏","进入游戏"); }
-在“我要玩” 事件完成后在new一个按钮“我不玩”,与上面类似,注意用“.”开头.setNegativeButton("我不玩", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Log.i("一个游戏","退出游戏");
-然后finish,结束当前activityfinish()
注意是在“我不玩”的输出日志后finish,然后才接“我不玩”监听器事件后半部分括号
-在我不玩按钮后接一句显示询问对话框的命令.show()
-在开始游戏按钮结束后接一句flout.addView(text1);把文本框组件添加到布局管理器当中,注意这行代码不用“.”开头
模拟器运行效果

点击开始游戏
在这里插入图片描述
点击我要玩,因为监听器并没有实质性的事件,所以返回返回布局文件
在这里插入图片描述
点击我不玩,finish activity,退出布局文件,返回首页
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值