通用属性(一)
通用属性(二)
TextView
对长文本进行显示处理android:text=“@string/longtext”
在strings.xml中加入
<string name="longtext">xjzzjtjxxmzxhdg提交法庭英国广播及客户看过桃园地方的人hgyukgyku</string>
在activity_main.xml中
android:singleLine=“true” —只显示页面第一行没显示完的用省略号表示
<TextView
android:singleLine="true"
android:text="@string/longtext"
android:textSize="30sp"
android:textColor="#00ff00"
android:layout_width="wrap_content"
android:layout_height="match_parent"></TextView>
android:lineSpacingExtra="20sp"设置行间距为20sp(第一行与第二行的距离为20sp)
<TextView
android:lineSpacingExtra="20sp"
android:text="@string/longtext"
android:textSize="30sp"
android:textColor="#00ff00"
android:layout_width="wrap_content"
android:layout_height="match_parent"></TextView>
android:lineSpacingMultiplier=“3” 原第一行在第一行,原第二行在第四行
<TextView
android:lineSpacingMultiplier="3"
android:text="@string/longtext"
android:textSize="30sp"
android:textColor="#00ff00"
android:layout_width="wrap_content"
android:layout_height="match_parent"></TextView>
ScrollView
实现滚轮,但中间只能套一个
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"></ScrollView>
EditText
android:inputType=“textPassword” 输入密码不可见
android:inputType=“number” 只能输数字
android:inputType=“numberSigned” 可输入负数
android:inputType=“numberDecimal” 可输小数
android:inputType=“numberDecimal | numberSigned” 可输入负小数
在activity_main.xml中
<EditText
android:id="@+id/et1"
android:textColorHint="#ff0000"
android:maxLength="3"
android:hint="请输入密码"
android:inputType="textPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"></EditText>
在MainActivity.java中
EditText et = findViewById(R.id.et1);
et.getText();
Button
android:visibility="gone"不可见状态也不保留位置
<Button
android:text="按钮"
android:visibility="gone"
android:layout_width="match_parent"
android:layout_height="wrap_content"></Button>
Button注册点击事件的方法
自定义内部类
在activity_main.xml中
<Button
android:id="@+id/btn1"
android:text="点击按钮"
android:layout_width="match_parent"
android:layout_height="wrap_content"></Button>
在MainActivity.java中
public class Main2Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
Button btn =findViewById(R.id.btn1);
btn.setOnClickListener(new mybutton());
}
class mybutton implements View.OnClickListener{
@Override
public void onClick(View view) {
Log.i("shit","我是按钮点击出来显示的");
}
}
效果图:
匿名内部类
在MainActivity.java中
public class Main2Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
Button btn =findViewById(R.id.btn1);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.i("shit","匿名内部类注册button点击事件");
}
});
}
}
效果图:
当前Activity去实现事件接口
在MainActivity.java中
public class Main2Activity extends AppCompatActivity implements View.OnClickListener {
@Override
public void onClick(View view) {
Log.i("shit","我是activity去实现button事件接口");
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
Button btn =findViewById(R.id.btn1);
btn.setOnClickListener(this);
}
}
效果图:
在布局文件中添加点击事件属性
在activity_main.xml中
<Button
android:id="@+id/btn1"
android:text="点击按钮"
android:onClick="btnclik"
android:layout_width="match_parent"
android:layout_height="wrap_content"></Button>
在MainActivity.java中
public class Main2Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
Button btn =findViewById(R.id.btn1);
}
public void btnclik(View view){
Log.i("shit","布局文件中添加点击事件属性");
}
}
效果图:
布局文件中添加点击事件属性——两个按钮的小练习
在activity_main.xml中
<Button
android:id="@+id/btn1"
android:text="点击按钮"
android:onClick="btnclik"
android:layout_width="match_parent"
android:layout_height="wrap_content"></Button>
<Button
android:id="@+id/btn2"
android:text="点击按钮"
android:onClick="btnclik"
android:layout_width="match_parent"
android:layout_height="wrap_content"></Button>
在MainActivity.java中
public class Main2Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
Button btn =findViewById(R.id.btn1);
}
public void btnclik(View view){
switch (view.getId()) {
case R.id.btn1: {
Log.i("shit", "button1点击");
break;
}
case R.id.btn2: {
Log.i("shit", "button2点击");
break;
}
}
}
}
效果图:
ProgressBar进度条
小练习——进度条缓慢走到头
在activity_main.xml中
<ProgressBar
android:id="@+id/pb"
android:layout_width="200dp"
android:layout_height="150dp"
style="?android:attr/progressBarStyleHorizontal"></ProgressBar>
在MainActivity.java中
public class Main2Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
final ProgressBar pb=findViewById(R.id.pb);
new Thread(){
@Override
public void run() {
for(int i=0;i<100;i++){
pb.setProgress(i);
try {
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}.start();
}
}
注:
在activity_main.xml中
android:progress="50"进度条一半,不走静止状态
android:indeterminate="true"进度条一直走,一直加载中
CheckBox复选控件
在activity_main.xml中
<CheckBox
android:id="@+id/man"
android:text="男"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></CheckBox>
在MainActivity.java中
setOnCheckedChangeListener监听状态变化
public class Main2Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
CheckBox cb1 =findViewById(R.id.man);
cb1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
Log.i("shit",b+"");
}
});
}
}
效果图:(是否选中“男”)
RadioButton
RadioGroup中RadioButton
在activity_main.xml中
<RadioGroup
android:id="@+id/rg"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RadioButton
android:id="@+id/man"
android:text="男"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></RadioButton>
<RadioButton
android:id="@+id/gril"
android:text="女"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></RadioButton>
</RadioGroup>
在MainActivity.java中
public class Main2Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
RadioGroup rg =findViewById(R.id.rg);
rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int i) {
switch (i){
case R.id.man:{
Log.e("shit","你选择的是男");
break;
}
case R.id.gril:{
Log.e("shit","你选择的是女");
break;
}
}
}
});
效果图:
SeekBar
在activity_main.xml中
<SeekBar
android:id="@+id/sb1"
android:layout_width="match_parent"
android:layout_height="wrap_content"></SeekBar>
在MainActivity.java中
SeekBar sb =findViewById(R.id.sb1);
sb.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
Log.i("shit","改变");
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
Log.i("shit","开始");
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
Toast.makeText(Main2Activity.this,seekBar.getProgress()+"",Toast.LENGTH_LONG).show();
Log.i("shit","停止");
}
});
效果图:
模拟手机上是进度条,拖动进度条即可显示