行业知识
Android 应用程序开发实验(二)熟悉安卓常见的UI组件
2026-11-02 23:11:14
来源:互联网转载
(1)基本常用组件
①布局预览:
②代码设计:
2.1 MainActivity.java完整代码
package com.example.myapplication;import android.content.Intent;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.RadioButton;import androidx.activity.EdgeToEdge;import androidx.appcompat.app.AppCompatActivity;import androidx.core.graphics.Insets;import androidx.core.view.ViewCompat;import androidx.core.view.WindowInsetsCompat;public class MainActivity extends AppCompatActivity { RadioButton radioButton,radioButton2; Button button; EditText editTextText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); EdgeToEdge.enable(this); setContentView(R.layout.activity_main); radioButton = findViewById(R.id.radioButton); radioButton2 = findViewById(R.id.radioButton2); button = findViewById(R.id.button); editTextText = findViewById(R.id.editTextText); //点击计算按钮跳转页面MainActivity2 Button button = findViewById(R.id.button); button.setOnClickListener(v -> calculateWeight()); ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> { Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()); v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom); return insets; }); } private void calculateWeight() { String radioButtonValue = radioButton.getText().toString(); int height = Integer.parseInt(editTextText.getText().toString()); double weight; if (radioButton.isChecked()) { weight = (height - 80) * 0.7; } else { weight = (height - 80) * 0.6; radioButtonValue = "女"; } Intent intent = new Intent(MainActivity.this, MainActivity2.class); //传递身高、体重数据到MainActivity2.class intent.putExtra("radioButtonValue",radioButtonValue); intent.putExtra("height", height); intent.putExtra("weight", weight); startActivity(intent); }} 2.2 activity_main.xml完整代码
2.3 MainActivity2.java完整代码
package com.example.myapplication;import android.annotation.SuppressLint;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TextView;import androidx.activity.EdgeToEdge;import androidx.appcompat.app.AppCompatActivity;import androidx.core.graphics.Insets;import androidx.core.view.ViewCompat;import androidx.core.view.WindowInsetsCompat;public class MainActivity2 extends AppCompatActivity { TextView textView1; TextView textView2; TextView textView3; @SuppressLint("SetTextI18n") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); EdgeToEdge.enable(this); setContentView(R.layout.activity_main2); textView1 = findViewById(R.id.textView1); textView2 = findViewById(R.id.textView2); textView3 = findViewById(R.id.textView3); Intent intent = getIntent(); String radioButtonValue = intent.getStringExtra("radioButtonValue"); double weight = intent.getDoubleExtra("weight", 0.0); int height = intent.getIntExtra("height",0); textView1.setText("你是一位 : " + radioButtonValue + " 性"); textView2.setText("你的身高是 : " + height + " cm"); textView3.setText("你的标准体重是 : " + weight + " kg"); //点击按钮跳转到ListView的使用页面 Button button = findViewById(R.id.jump); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent1 = new Intent(MainActivity2.this, MainActivity3.class); startActivity(intent1); } }); ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> { Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()); v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom); return insets; }); }} 2.4 activity_main2.xml完整代码
(2)ListView的使用
①布局预览:
②代码设计:
2.1 MainActivity3.java完整代码
package com.example.myapplication;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.Button;import android.widget.ListView;import android.widget.TextView;import android.widget.Toast;import androidx.activity.EdgeToEdge;import androidx.appcompat.app.AppCompatActivity;import androidx.core.graphics.Insets;import androidx.core.view.ViewCompat;import androidx.core.view.WindowInsetsCompat;import java.util.ArrayList;import java.util.List;public class MainActivity3 extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); EdgeToEdge.enable(this); setContentView(R.layout.activity_main3); //点击按钮跳转到ListView的使用页面 Button button = findViewById(R.id.jump2); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent1 = new Intent(MainActivity3.this, MainActivity4.class); startActivity(intent1); } }); final TextView textView = (TextView)findViewById(R.id.textView6); //ListView子项的信息 ListView listView = (ListView)findViewById(R.id.Listview01); Listlist = new ArrayList(); list.add("安卓应用开发基础-01"); list.add("安卓应用开发基础-02"); list.add("安卓应用开发基础-03"); list.add("安卓应用开发基础-04"); list.add("安卓应用开发基础-05"); list.add("安卓应用开发基础-06"); list.add("安卓应用开发基础-07"); ArrayAdapteradapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1,list); listView.setAdapter(adapter); //ListView子项的点击监听器 AdapterView.OnItemClickListener listViewListener = new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView arg0, View arg1, int arg2, long arg3) { // String msg = "父 View: " + arg0.toString() + "\n"+"子 View: " +arg1.toString()+"\n"+"位置: "+String.valueOf(arg2)+",ID:"+String.valueOf(arg3); // 获取点击的子项对应的内容 String msg = "您现在点击的是:"+ (String) arg0.getItemAtPosition(arg2); //Toast弹窗结果 showToast("您点击了"+ (String) arg0.getItemAtPosition(arg2)); //文本显示结果 //textView.setText(msg); } }; listView.setOnItemClickListener(listViewListener); //ListView子项长按监听器 AdapterView.OnItemLongClickListener listViewLongClickListener = new AdapterView.OnItemLongClickListener(){ @Override public boolean onItemLongClick(AdapterView arg0, View arg1, int arg2, long arg3) { // 获取长按的子项对应的内容 String msg = "您长按了:"+ (String) arg0.getItemAtPosition(arg2); // 弹出另一个气泡提示框 showToast("您长按了"+ (String) arg0.getItemAtPosition(arg2)); return true; } }; listView.setOnItemLongClickListener(listViewLongClickListener); ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> { Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()); v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom); return insets; }); } private void showToast(String message) { Toast.makeText(this, message, Toast.LENGTH_SHORT).show(); }} 2.2 activity_main3.xml完整代码
(3)XML定义菜单
①布局预览:
②代码设计:
2.1 MainActivity4.java完整代码
package com.example.myapplication;import android.graphics.Color;import android.os.Bundle;import android.view.Gravity;import android.view.Menu;import android.view.MenuInflater;import android.view.MenuItem;import android.widget.TextView;import android.widget.Toast;import androidx.activity.EdgeToEdge;import androidx.appcompat.app.AppCompatActivity;import androidx.core.graphics.Insets;import androidx.core.view.ViewCompat;import androidx.core.view.WindowInsetsCompat;public class MainActivity4 extends AppCompatActivity { Toast toast; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); EdgeToEdge.enable(this); setContentView(R.layout.activity_main4); ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> { Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()); v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom); return insets; }); } @Override public boolean onCreateOptionsMenu(Menu menu){ MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu_main,menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item){ TextView label = (TextView) findViewById(R.id.label); int itemId = item.getItemId(); if (itemId == R.id.main_menu_01) { label.setTextSize(10); return true; } else if (itemId == R.id.main_menu_02) { label.setTextSize(16); return true; } else if (itemId == R.id.main_menu_03) { label.setTextSize(20); return true; } else if (itemId == R.id.main_menu_12) { label.setTextColor(Color.RED); return true; } else if (itemId == R.id.main_menu_11) { label.setTextColor(Color.BLACK); return true; } else if (itemId == R.id.main_menu_2) { showToast("您点击了基本菜单项"); return true; } else { return false; } } private void showToast(String message) { Toast.makeText(this, message, Toast.LENGTH_SHORT).show(); }} 2.2 activity_main4.xml完整代码
2.3 menu_main.xml完整代码
(4)实验说明
MainActivity2.java与MainActivity3.java中分别设置了跳转页面的代码,方便个人学习调试,不需要可选择删除跳转按钮以及相关代码。后续相关学习实验内容也会进行更新发布,感谢大家的喜欢与支持!作者学习Android 应用程序开发的过程中,如有不足之处,期待您的指正哦!
(5)寄语
学习之路漫漫长,薪资之望快快涨。
下一篇:服务器节点怎么搭建?