在Java代码中控制UI界面

在Java代码中控制UI界面

直接在MainActivity.java中编写Java代码控制界面
在这里插入图片描述
按上一个生成moudle的方法,在生成的project中新建一个moudle
在这里插入图片描述
由于本案例直接使用Java设置布局,故不需要布局文件,对于自动生成的activity_main.xml布局文件可以直接删除,只在MainActivity.java中编写程序
在这里插入图片描述
删除生成的引用布局文件语句
MainActivity.java中的语句: setContentView(R.layout.activity_main);
开始编写

//原始代码
package com.example;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main); //删除
    }
}

将背景图片添加到mipmap中
在这里插入图片描述

// 修改代码
package com.example;

import android.content.DialogInterface;
import android.graphics.Color;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.util.TypedValue;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //创建布局管理器对象
        FrameLayout frameLayout = new FrameLayout(this);
        frameLayout.setBackgroundResource(R.mipmap.bg); //设置背景图片
        setContentView(frameLayout); //将定义的布局管理器添加到activity中

        // 创建文本对象
        TextView textView1 = new TextView(this);
        textView1.setText("开始游戏'"); //设置文本内容
        textView1.setTextSize(TypedValue.COMPLEX_UNIT_SP, 18); //设置字体大小
        textView1.setTextColor(Color.rgb(17, 85, 114)); //设置颜色
        FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
                ViewGroup.LayoutParams.WRAP_CONTENT); // 实例化布局对象,并设置好布局宽度和高度
        params.gravity = Gravity.CENTER; //布局对齐方式设置居中
        textView1.setLayoutParams(params); //为文本框设置参数

        //为文本框组件设置一个单击事件
        textView1.setOnClickListener(new View.OnClickListener(){
            public void onClick(View v){
                new AlertDialog.Builder(MainActivity.this).setTitle("系统提示")
                        .setMessage("游戏有风险,进入需要谨慎,真的要进入吗?")
                        //设置开始按钮
                        .setPositiveButton("确定", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialogInterface, int i) {
                                Log.i("桌面台球", "进入游戏");
                            }
                            //设置退出按钮
                        }).setNegativeButton("退出", new  DialogInterface.OnClickListener(){
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        Log.i("桌面台球", "退出游戏");
                        finish();
                    }
                }).show(); //调用show()方法显示对话框

            }
        });
        frameLayout.addView(textView1); // 将定义的文本框添加到组件




    }
}

选择javalayout运行
在这里插入图片描述
选择新建一个AVD,新建结果:
在这里插入图片描述

结果:
在这里插入图片描述
点击开始游戏:

在这里插入图片描述
点击退出后直接退出到原始桌面
在这里插入图片描述
点击确定后留在游戏界面

注:由于之添加了按钮,但是并未添加其他活动,所以点击确定还不会进入其他界面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值