Android Java文件中基础UI组件操作指南
一、常用UI组件基本操作
1. TextView文本控件
TextView textView = findViewById(R.id.textView);
textView.setText("欢迎使用Android");
textView.setTextColor(Color.BLUE);
textView.setTextColor(getResources().getColor(R.color.my_color));
textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 18);
textView.setTypeface(null, Typeface.BOLD_ITALIC);
textView.setMovementMethod(LinkMovementMethod.getInstance());
String htmlText = "<a href='https://www.example.com'>访问网站</a>";
textView.setText(Html.fromHtml(htmlText));
2. EditText输入框
EditText editText = findViewById(R.id.editText);
editText.setHint("请输入用户名");
editText.setInputType(InputType.TYPE_CLASS_TEXT);
editText.setInputType(InputType.TYPE_CLASS_NUMBER);
editText.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
editText.setHint(getString(R.string.input_account));
String input = editText.getText().toString().trim();
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {}
});
3. Button按钮
Button button = findViewById(R.id.button);
button .setText(getString(R.string.login));
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "按钮被点击", Toast.LENGTH_SHORT).show();
}
});
button.setOnClickListener(v -> {
});
button.setBackgroundResource(R.drawable.btn_selector);
button.setEnabled(false);
二、选择类组件操作
1. CheckBox复选框
CheckBox checkBox = findViewById(R.id.checkBox);
checkBox.setChecked(true);
checkBox.setOnCheckedChangeListener((buttonView, isChecked) -> {
if(isChecked) {
} else {
}
});
2. RadioGroup和RadioButton单选组
RadioGroup radioGroup = findViewById(R.id.radioGroup);
RadioButton radioButton1 = findViewById(R.id.radioButton1);
RadioButton radioButton2 = findViewById(R.id.radioButton2);
radioGroup.setOnCheckedChangeListener((group, checkedId) -> {
if(checkedId == R.id.radioButton1) {
} else if(checkedId == R.id.radioButton2) {
}
});
int selectedId = radioGroup.getCheckedRadioButtonId();
3. Spinner下拉选择框
Spinner spinner = findViewById(R.id.spinner);
ArrayAdapter<String> adapter = new ArrayAdapter<>(
this,
android.R.layout.simple_spinner_item,
new String[]{"选项1", "选项2", "选项3"}
);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String selected = parent.getItemAtPosition(position).toString();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {}
});
三、图片和进度显示组件
1. ImageView图片显示
ImageView imageView = findViewById(R.id.imageView);
imageView.setImageResource(R.drawable.ic_launcher);
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
Glide.with(this)
.load("https://example.com/image.jpg")
.placeholder(R.drawable.placeholder)
.error(R.drawable.error)
.into(imageView);
2. ProgressBar进度条
ProgressBar progressBar = findViewById(R.id.progressBar);
progressBar.setVisibility(View.VISIBLE);
progressBar.setVisibility(View.GONE);
progressBar.setProgress(50);
progressBar.setMax(100);
progressBar.setIndeterminate(true);
3. SeekBar拖动条
SeekBar seekBar = findViewById(R.id.seekBar);
seekBar.setMax(100);
seekBar.setProgress(30);
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {}
});
四、布局容器操作
1. 动态添加视图到LinearLayout
LinearLayout container = findViewById(R.id.container);
Button newButton = new Button(this);
newButton.setText("动态添加的按钮");
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT
);
params.setMargins(10, 10, 10, 10);
container.addView(newButton, params);
2. 动态切换视图
FrameLayout frameLayout = findViewById(R.id.frameLayout);
View view1 = LayoutInflater.from(this).inflate(R.layout.view1, frameLayout, false);
frameLayout.addView(view1);
View view2 = LayoutInflater.from(this).inflate(R.layout.view2, frameLayout, false);
frameLayout.removeAllViews();
frameLayout.addView(view2);
五、常用工具方法
1. Toast消息提示
Toast.makeText(this, "这是一个提示", Toast.LENGTH_SHORT).show();
Toast toast = new Toast(this);
View view = LayoutInflater.from(this).inflate(R.layout.custom_toast, null);
toast.setView(view);
toast.setDuration(Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
2. Snackbar提示条
Snackbar.make(findViewById(android.R.id.content),
"操作已完成",
Snackbar.LENGTH_LONG)
.setAction("撤销", v -> {
})
.show();
3. 弹出菜单
PopupMenu popupMenu = new PopupMenu(this, anchorView);
popupMenu.getMenuInflater().inflate(R.menu.popup_menu, popupMenu.getMenu());
popupMenu.setOnMenuItemClickListener(item -> {
switch(item.getItemId()) {
case R.id.menu_item1:
return true;
case R.id.menu_item2:
return true;
}
return false;
});
popupMenu.show();