天水网站开发技术招聘,专业的网站建设托管,苏州有哪些做网站公司好,免费网站怎么建立文章目录TextView 控件#xff1a;文本信息Button 控件#xff1a;按钮EditText 控件#xff1a;输入框ImageView 控件#xff1a;图片ProgressBar 控件#xff1a;进度条AlertDialog 控件#xff1a;提示框ProgressDialog 控件#xff1a;带有进度条的提示框TextView 控…
文章目录TextView 控件文本信息Button 控件按钮EditText 控件输入框ImageView 控件图片ProgressBar 控件进度条AlertDialog 控件提示框ProgressDialog 控件带有进度条的提示框TextView 控件文本信息
TextView 是 Android 中较常用的一个控件。主要用于在界面上显示一段文本信息配置在每个活动的 xml 文件中。除了之前用到的 android:id、android:layout_width 、android:layout_height 三种属性下面三种属性也比较常用
android:gravity 文字对齐方式可选值有 top、bottom、left、right、center 等可以用 | 来同时指定多个值。android:textSize 文字大小以 sp 为单位。android:textColor文字颜色。 Button 控件按钮
此前我们可能经常困扰于 Button 上的英文字母总是全部大写这是由于默认配置会对所有英文字母自动进行大写转换如果不想要我们可以使用这样的配置
Button android:textAllcapsfalse/以往的博客里通常使用匿名类来注册监听器
Button button (Button) findViewById(R.id.button_1);
button.setOnClickListener(new View.OnClickListener() { // 匿名类 new View.OnClickListener()Overridepublic void onClick(View v) {//添加逻辑}
});如果不想用匿名类来注册也可以用实现接口的方式来注册
// implements 继承 View.OnClickListener 接口
public class MainActivity extends AppCompatActivity implements View.OnClickListener{Overrideprotected void onCreate(Bundle savedInstanceState) {//...Button button (Button) findViewById(R.id.button_1);button.setOnClickListener(this);// this 即 implements View.OnClickListener 的具体实现}Overridepublic void onClick(View v){switch (v.getId()){case R.id.button_1://添加逻辑break;default:break;}}
}EditText 控件输入框
EditText 允许用户在控件里输入和编辑内容并且可以在程序中对这些内容进行处理
EditTextandroid:idid/edit_textandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:hintType Something Hereandroid:maxLines2 /运行结果
android:hint 在文本框中出现的提示文字。一旦用户输入提示就会消失。android:maxLines 限制文本框的最大行数。当输入内容增多时EditText 会不断拉长界面就会非常难看。本例中输入超过两行文本就会向上滚动EditText 就不会再继续拉伸。
还可以结合 EditText 和 Button 来完成一些功能比如点击按钮来获取 EditText 中输入的内容
public class MainActivity extends AppCompatActivity {private Button button;private EditText editText;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button (Button) findViewById(R.id.button_1);editText (EditText) findViewById(R.id.edit_text); button.setOnClickListener(new View.OnClickListener() {Overridepublic void onClick(View v) {String inputText editText.getText().toString();Toast.makeText(FirstActivity.this, inputText, Toast.LENGTH_SHORT).show();}});}
}首先通过 findViewById() 方法得到 EditText 的实例然后在 Button 的点击事件里调用 EditText 的 getText() 方法获取到输人的内容再调用 toString() 方法转换成字符串最后使用 Toast 将输入的内容显示出来。 运行结果 ImageView 控件图片
ImageView 是用于在界面上显示图片的一个控件使用这个控件需要在 drawable 目录中预置一些图片。
在 xml 文件中添加 ImageView
ImageViewandroid:idid/image_viewandroid:layout_widthwrap_contentandroid:layout_heightwrap_content android:srcdrawable/cmy1
/ImageView由于图片的宽和高都是未知的所以将 ImageView 的宽和高都设定为 wrap_content这样就保证了不管图片的尺寸是多少图片都可以完整地展示出来。android:src 指定引用哪张图片本例中是 drawable 系目录下的名为 cmy1 的图片。 运行结果 实现点击 Button 切换图片的功能
public class FirstActivity extends AppCompatActivity {private ImageView imageView;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.first_layout);Button button_normal (Button)findViewById(R.id.button_normal);imageView (ImageView)findViewById(R.id.image_view);button_normal.setOnClickListener(new View.OnClickListener() {Overridepublic void onClick(View v) {switch (v.getId()){case R.id.button_normal:imageView.setImageResource(R.drawable.cmy2);break;default:break;}}});}
}ProgressBar 控件进度条
用于在界面上显示一个进度条表示程序正在加载一些数据 ProgressBarandroid:idid/progress_circularandroid:layout_widthmatch_parentandroid:layout_heightwrap_content /ProgressBar有个问题如上实现的进度条会一直旋转 可以通过可见属性 visibility来在加载完成时停止进度条旋转
visible 表示可见为默认值。invisible 表示不可见但依然存在只是透明。gone 表示不可见并且不再占用屏幕空间。
可以通过 setVisiblity 方法来设定这三种值举个例子通过点击 Button 来切换 ProgressBar 为 GONE 还是 VISIBLE
public class FirstActivity extends AppCompatActivity {private ProgressBar progressBar;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.first_layout);Button button_normal (Button)findViewById(R.id.button_normal);progressBar (ProgressBar)findViewById(R.id.progress_circular);button_normal.setOnClickListener(new View.OnClickListener() {Overridepublic void onClick(View v) {switch (v.getId()){case R.id.button_normal:if(progressBar.getVisibility() View.GONE){ // 原本不可见则设为可见progressBar.setVisibility(View.VISIBLE);}else{ // 原本可见则设为不可见progressBar.setVisibility(View.GONE);}break;default:break;}}});}
}默认的进度条形式是圆形可以通过 style 属性将进度条形式设为条形并且给它设置一个最大值从而达到动态改变进度条进度的目的
ProgressBarandroid:idid/progress_barandroid:layout_widthmatch_parentandroid:layout_heightwrap_content style?android:attr/progressBarStyleHorizontalandroid:max100/实现 每点击一次按钮就能获取进度条的当前进度然后在现有进度条上加10作为更新后的进度 的功能
public class FirstActivity extends AppCompatActivity {private ProgressBar progressBar;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.first_layout);Button button_normal (Button)findViewById(R.id.button_normal);progressBar (ProgressBar)findViewById(R.id.progress_circular);button_normal.setOnClickListener(new View.OnClickListener() {Overridepublic void onClick(View v) {switch (v.getId()){case R.id.button_normal:int progress progressBar.getProgress();progress progress 10;progressBar.setProgress(progress);break;default:break;}}});}
}AlertDialog 控件提示框
在当前界面弹出一个置顶于有界面元素之上的对话框能够屏蔽掉其他控件的交互能力。因此一般用于提示一些非常重要的内容或者警告信息。比如防误删等。
添加 AlertDialog
public void onClick(View v) {AlertDialog.Builder dialog new AlertDialog.Builder(FirstActivity.this);dialog.setTitle(Warning);dialog.setMessage(Are you sure?);dialog.setCancelable(false);// setCancelable 默认为 true表点击弹窗外或BACK键可以取消弹窗false则表示不可以取消dialog.setPositiveButton(YES, new DialogInterface.OnClickListener() {Overridepublic void onClick(DialogInterface dialog, int which) {// 可以自定义点击后的事件比如跳转到其他 ActivityIntent intent new Intent(FirstActivity.this, DialogActivity.class);startActivity(intent);}});dialog.setNegativeButton(NO, new DialogInterface.OnClickListener() {Overridepublic void onClick(DialogInterface dialog, int which) {}});dialog.setNegativeButton(Cancel, new DialogInterface.OnClickListener() {Overridepublic void onClick(DialogInterface dialog, int which) {}});dialog.show();
}setPositiveButton、setNegativeButton、setNeutralButton 三者都是封装好的 Button只是显示位置不同通常分别用来对应确定事件、否定事件、中立事件。但也可以按行为习惯进行更改比如我偏要 setPositiveButton 对应否定事件别人也拿我没办法……只是对应事件和方法的意思不一样可能在交接时误导队友…… ProgressDialog 控件带有进度条的提示框
可以在界面上弹出一个带有进度条的提示框能够屏蔽掉其他空间的交互能力。一般是用于表示当前操作比较耗时让用户耐心等待
public void onClick(View v) {switch (v.getId()){case R.id.button_normal:ProgressDialog dialog new ProgressDialog(FirstActivity.this);dialog.setTitle(ProgressDialog);dialog.setMessage(Loading……);dialog.setCancelable(false);dialog.setButton3(CANCEL, new DialogInterface.OnClickListener() {Overridepublic void onClick(DialogInterface dialog, int which) { }});dialog.setButton2(YES, new DialogInterface.OnClickListener() {Overridepublic void onClick(DialogInterface dialog, int which) { }});dialog.setButton(NO, new DialogInterface.OnClickListener() {Overridepublic void onClick(DialogInterface dialog, int which) { }});dialog.show();break;}
}由于 setCancelable() 中传入了 false因此 ProgressDialog 不能被取消所以在加载完成之后一定要用 dismiss() 方法来关闭对话框否则 ProgressDialog 会一直存在。