Android中常用控件
TextView
<TextView
android:id="@+id/textview"
android:textSize="30dp"
android:textColor="@color/colorAccent"
android:text="TextView"
android:gravity="center" //用于指定文字在控件中的位置
android:layout_width="match_parent"
android:layout_height="wrap_content" />
Button
<Button
android:id="@+id/b1"
android:text="button"
android:textAllCaps="false"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
button的点击事件有两种方式(注册监听器)
1:匿名类
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button b1 = findViewById(R.id.b1);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(MainActivity.this,"点击按钮",Toast.LENGTH_SHORT).show();
}
});
}
}
2:实现接口
public class MainActivity extends AppCompatActivity implements View.OnClickListener{ //继承接口
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button b1 = findViewById(R.id.b1);
b1.setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch(view.getId()){
case R.id.b1:Toast.makeText(MainActivity.this,"点击按钮",Toast.LENGTH_SHORT).show();
break;
}
}
}
EditText
<EditText
android:id="@+id/editext"
android:hint="This is a EditText" //用于提示信息
android:layout_width="match_parent"
android:layout_height="wrap_content" />
可以用getText()方法获取其中的文本内容。
ImageView
<ImageView
android:src="@drawable/ic_launcher_background"//用于指定放置哪张图片
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
可以用setImageResource()方法更换图片。
ProgressBar
<ProgressBar //默认圆形进度条
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
控制进度条:
首先需要知道Android控件的可见属性,可以通过android:visibility进行指定,可选值有三种。
visible:控件可见,在不指定时,默认为此。
invisible:控件不可见,但仍然占据着原来的位置和大小。
gone:控件不但不可见,而且不占据任何的屏幕空间和大小。
我们还可以通过代码来控制控件的可见性,使用的是setVisibility()方法,可传入View.VISIBLE,View.INVISIBLE,View.GONE三种值。
请看如下代码,如果进度条显示将其隐藏起来,如果进度条隐藏就将其显示出来。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<Button
android:id="@+id/b1"
android:text="改变进度条的显隐性"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<ProgressBar
android:id="@+id/p1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
package com.example.fffff;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
Button b1;
ProgressBar p1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
p1 = findViewById(R.id.p1);
b1 = findViewById(R.id.b1);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(p1.getVisibility()==View.VISIBLE){
p1.setVisibility(View.GONE);
}else{
p1.setVisibility(View.VISIBLE);
}
}
});
}
}
接下来我们将圆形进度条改成水平进度条,并动态的更改进度条进度。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<Button
android:id="@+id/b1"
android:text="增加进度条进度"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button
android:id="@+id/b2"
android:text="减少进度条进度"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<ProgressBar
android:id="@+id/p1"
android:max="100"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
package com.example.fffff;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
Button b1;
Button b2;
ProgressBar p1;
int progress;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
p1 = findViewById(R.id.p1);
b1 = findViewById(R.id.b1);
b2 = findViewById(R.id.b2);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
progress = p1.getProgress();
progress = progress+10;
p1.setProgress(progress);
}
});
b2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
progress = p1.getProgress();
progress = progress-10;
p1.setProgress(progress);
}
});
}
}
AlertDialog
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<Button
android:id="@+id/b1"
android:text="显示对话框"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
package com.example.fffff;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
Button b1;
int progress;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
b1 = findViewById(R.id.b1);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
dialog.setTitle("This is a Dialog");
dialog.setMessage("Something important");
dialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
});
dialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
});
dialog.show();
}
});
}
}
ProgressDialog
ProgressDialog和ProgressDialog相似,只是会在对话框中显示一个进度条,一般用于表示操作比较耗时。
package com.example.fffff;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
Button b1;
int progress;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
b1 = findViewById(R.id.b1);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ProgressDialog progressDialog = new ProgressDialog(MainActivity.this);
progressDialog.setTitle("This is a progressdialog");
progressDialog.setMessage("Loading...");
progressDialog.show();
}
});
}
}