栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Android Studio开发

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android Studio开发

简要目录
  • 1、Android基础开发界面
  • 2、基础组件的使用
    • 1、TextView使用
      • 1.1 属性
      • 1.2 事件
    • 2、Button的使用
      • 1、设置
      • 2、属性
      • 3、事件
    • 3、输入框EditText的使用
      • 3.1 属性:
      • 3.2 事件:
      • 3.3 监听:
      • 3.4 引入三方插件:
    • 4、复选框CheckBox单选框RadioButton的使用
      • 4.1 属性
      • 4.2 方法
      • 4.3 事件
    • 5、下拉框Spinner使用
      • 5.1 属性
      • 5.2 事件
      • 5.3 方法
      • 5.4 适配器
    • 6、图片ImageView的使用
      • 6.1 属性
      • 6.2 方法
      • 6.3 插件
    • 7. 布局layout使用
      • 7.1 默认宽/高设定
      • 7.2 LinearLayout: 线性布局
      • 7.3 RelativeLayOut: 针布局(在页面的上方,类似于绝对布局和相对布局)
    • 8. 完成登录界面及头部Toolbar的使用
      • 8.1 Toolbar
      • 8.2 完成布局并设置id
      • 8.3 开发工具插件
      • 8.4 准备事件
      • 8.5 获取账号/密码验证数据
      • 8.6 完成登录---跳转页面

原视频链接

1、Android基础开发界面


2、基础组件的使用 1、TextView使用 1.1 属性




    

public class MainActivity extends AppCompatActivity {

    private TextView mTv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // R里面存在着当前所有的界面当中的元素
        setContentView(R.layout.activity_main);
        // 初始化方法
        initView();

    }

    private void initView() {
        // R.id获得在界面中的所有id
        // 设置全局变量,才能真正控制其状态的变化
        mTv = findViewById(R.id.main_tv_test);
        mTv.setSelected(true);
    }
}
1.2 事件

private TextView mTv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // R里面存在着当前所有的界面当中的元素
        setContentView(R.layout.activity_main);
        // 初始化方法
        initView();
        // 控制页面
        setView();
    }

    private void setView() {
        // 点击事件(大部分都是setOn开头)
        mTv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                // 点击的逻辑
                mTv.setText("你点击了这个文本");
            }
        });

        // 长按事件
        mTv.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View view) {
                // 查看逻辑
                mTv.setText("你长按了这个文本---------------------");
                // 执行后的焦点失去
                return true;
            }
        });
    }

    private void initView() {
        // R.id获得在界面中的所有id
        // 设置全局变量,才能真正控制其状态的变化
        mTv = findViewById(R.id.main_tv_test);
        mTv.setSelected(true);
    }
2、Button的使用

创建新界面

1、设置


2、属性


如果直接在button上设置文字,最好是放置在strings里面

普通样式

 

自定义样式




    
    
    
    
    

应用

手动切换主页面

3、事件


步骤

  • 1、控件绑定id
  • 2、通过java代码找到相应的控件
  • 3、对控件进行相应的事件处理
3、输入框EditText的使用 3.1 属性:

3.2 事件:

3.3 监听:

public class EditTest extends AppCompatActivity {

    private EditText mEt;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_edit_test);
        initView();
        setView();
    }

    private void setView() {
        // 焦点事件
        mEt.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View view, boolean b) {
                if(b){
                    // 获取焦点逻辑
                    Toast.makeText(getApplicationContext(), "输入框获取焦点",Toast.LENGTH_LONG).show();
                }else{
                    // 失去焦点逻辑
                    Toast.makeText(getApplicationContext(), "输入框失去焦点",Toast.LENGTH_LONG).show();
                }
            }
        });
        // 设置事件监听
        mEt.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
                // 获取文本
                Log.d("LOGEDIT", mEt.getText().toString());
            }

            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void afterTextChanged(Editable editable) {

            }
        });
    }

    private void initView() {
        mEt = findViewById(R.id.edit_et_test);
    }
}



    
    

    
    









    
    

3.4 引入三方插件:

 //noinspection GradleCompatible
    implementation 'com.android.support:appcompat-v7:27.1.1'
    //noinspection GradleCompatible
    implementation 'com.android.support:design:27.+'


        
    
4、复选框CheckBox单选框RadioButton的使用 4.1 属性

4.2 方法

4.3 事件




    

    

    
        
        
        
        
    



public class CheckBox_RadioButton_Test extends AppCompatActivity {

    private CheckBox mCb1;

    private CheckBox mCb2;
    private RadioGroup mRG;
    private RadioButton mRb1;
    private RadioButton mRb2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_check_box_radio_button_test);
        initView();
        setView();
    }

    private void setView() {
        // 设置默认勾选
//        mCb1.setChecked(true);
        Toast.makeText(getApplicationContext(), mCb1.isChecked()+"", Toast.LENGTH_LONG).show();

        // ---------------------------
        // 判断是选中了那个单选框
        mRG.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup radioGroup, int i) {
                // i 为 选中的单选框的id
                switch (i){
                    case R.id.rb_test1:
                        // 选中第一个单选框的逻辑
                        Toast.makeText(getApplicationContext(), mRb1.getText().toString(), Toast.LENGTH_LONG).show();
                        break;
                    case R.id.rb_test2:
                        // 选中第二个单选框的逻辑
                        Toast.makeText(getApplicationContext(), mRb2.getText().toString(), Toast.LENGTH_LONG).show();
                        break;
                }
            }
        });
    }

    private void initView() {
        mCb1 = findViewById(R.id.crb_rb_test1);
        mCb2 = findViewById(R.id.crb_rb_test2);
        mRG = findViewById(R.id.crb_rg_test);
        mRb1 = findViewById(R.id.rb_test1);
        mRb2 = findViewById(R.id.rb_test2);
    }

}
5、下拉框Spinner使用

5.1 属性

5.2 事件

5.3 方法

5.4 适配器




    
    

    

重点: 适配器的刷新作用

public class SpinnerTest extends AppCompatActivity {

    private Spinner mSp;

    private List lists;

    // 设置数组适配器
    private ArrayAdapter arrayAdapter;
    private Button mBt;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_spinner_test);
        initView();
        setView();
    }

    private void setView() {
        // 设置选择事件
        mSp.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView adapterView, View view, int i, long l) {
                // i为静态数据的下标
                // 获取选中的静态数据的下标
                Toast.makeText(getApplicationContext(), lists.get(i).toString(), Toast.LENGTH_LONG).show();
            }

            @Override
            public void onNothingSelected(AdapterView adapterView) {

            }
        });

        // 设置按钮点击事件
        mBt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String checkText = mBt.getText().toString();
                lists.add(checkText);
                // 刷新数据
                arrayAdapter.notifyDataSetChanged();
            }
        });
    }

    private void initView() {
        mSp = findViewById(R.id.spinner_sp_test);
        lists = new ArrayList<>();
        lists.add("管理人员");
        lists.add("普通用户");
        // 适配器就类似于插座
        // 上下文 适配的样式 数据源(将数据源与适配器进行挂载)
        arrayAdapter = new ArrayAdapter(
                getApplicationContext(), android.R.layout.simple_expandable_list_item_1, lists
        );
        // 适配器设置在Spinner当中(将Spinner与适配器进行挂载)
        mSp.setAdapter(arrayAdapter);

        // 初始化按钮
        mBt = findViewById(R.id.button_spinner_test);
    }
}
6、图片ImageView的使用 6.1 属性

6.2 方法


    
    

public class ImageViewTest extends AppCompatActivity {

    private ImageView mImg;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_image_view_test);
        initView();
        setView();
    }

    private void setView() {
        // 设置静态图片
        mImg.setImageResource(R.drawable.test_img);
    }

    private void initView() {
        mImg = findViewById(R.id.img_ig_test);
    }
}
6.3 插件

使用说明

  • 引入依赖
  //noinspection GradleCompatible
   implementation 'com.github.bumptech.glide:glide:4.11.0'
  • 添加访问网络权限
    
    

  • java代码设置图片
public class ImageViewTest extends AppCompatActivity {

    private ImageView mImg;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_image_view_test);
        initView();
        setView();
    }

    private void setView() {
        // 设置静态图片
//        mImg.setImageResource(R.drawable.test_img);
        // 安卓中URI指的是本地路径 /Volumes/Work/WorkSpace/android/androidSpace/study1/app/src/main/res/drawable/test_img.png
//         mImg.setImageURI();
        String pathUrl = "https://www.baidu.com/img/flexible/logo/pc/result@2.png";
        Glide.with(getApplicationContext()).load(pathUrl).into(mImg);
    }

    private void initView() {
        mImg = findViewById(R.id.img_ig_test);
    }
}
7. 布局layout使用 7.1 默认宽/高设定

7.2 LinearLayout: 线性布局

	


    
    
    
    
    

        
        
        

        
        
        
7.3 RelativeLayOut: 针布局(在页面的上方,类似于绝对布局和相对布局)




    

        
        
8. 完成登录界面及头部Toolbar的使用 8.1 Toolbar

8.2 完成布局并设置id 8.3 开发工具插件


安装完成后重启Android Studio
找到想要快速生成id的界面,选中所用的xml,右键生成,弹出界面

8.4 准备事件 8.5 获取账号/密码验证数据 8.6 完成登录—跳转页面



    

    

    

        

        
            
            

        

        
            
            
        
        
        
public class Demo_Login_Test extends AppCompatActivity implements View.OnClickListener{

    private EditText mLoginEtUsername;
    private EditText mLoginEtPassword;
    private Button mLoginBt;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_demo_login_test);
        initView();
    }

    private void initView() {
        mLoginEtUsername = (EditText) findViewById(R.id.login_et_username);
        mLoginEtPassword = (EditText) findViewById(R.id.login_et_password);
        mLoginBt = (Button) findViewById(R.id.login_bt);
        mLoginBt.setOnClickListener(this);
    }


    @Override
    public void onClick(View view) {
        switch (view.getId()){
            default:
                break;
            case R.id.login_bt:
                String user = mLoginEtUsername.getText().toString();
                String password = mLoginEtPassword.getText().toString();
                if(user.equals("") || password.equals("")){
                    Toast.makeText(this, "不能为空", Toast.LENGTH_LONG).show();
                    return;
                }
                if(user.equals("admin")&&password.equals("123")){
                    // 登录成功
                    startActivity(new Intent(Demo_Login_Test.this, ButtonTest.class));
                }else{
                    Toast.makeText(this, "账号密码不正确", Toast.LENGTH_LONG).show();
                    return;
                }
                break;
        }
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/679043.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号