2021/1/25再更新:
因为每个电脑配置都不同,所以要移动时就是要用java和xml档COPY
和
用的方法-
1.开新空专案跑完
2.找到对应的档案CTRL C+CTRL V
3.要.java和.xml档都贴完才可以消失红
和
觉得最麻烦的就是不断更新的模拟器debug
记得老师有交代自己写的APP不要用自己在用的手机测..
但是TOAST模拟器真的不能....
https://www.google.com/search?sxsrf=AOaemvJ4BLMRazL6ZIXVhmwWDU1yQ6LJ9Q%3A1642918325626&lei=tfHsYazlJYv30AT2_YLwCQ&q=Android%20studio%20Toast%20%E9%A1%AF%E7%A4%BA%20%E4%B8%8D%20%E5%87%BA%E4%BE%86&ved=2ahUKEwjsk8bZm8f1AhWLO5QKHfa-AJ4QsKwBKAB6BAg0EAE&biw=1536&bih=722&dpr=1.25
虽然做久了就习惯
要全部有id也可以但是下面一定要有
调字大小.字的大小单位是sp:
要先用RadioGroup 再用 RadioButton
要先用RadioGroup-不好绑要放大点
再用 RadioButton-一定有缩排-用RadioGroup只能选定一个
ConstraintLayout-是预设一个一个排的-没有缩排
所以下面容器用LinearLayout 来选要直着排..还是横着排..
先拉好在下面(不好调~><)
用旁边的Layout-Constraint Widget去调旁边的距离是最好的
RadioButton单选-要有id-拉到旁边
再加入button
再加入textview
用radioGroup去管理radioButton
所以要先按radioGroup-一定要有id
重构-ok才能变
再来是radioButton的id
从code来改
新增一个按钮-一个完整xml
<RadioButton
android:id="@+id/r2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="女士" />
看面板
要改方向-orientation
改完的样子
CheckBox复选-要有id
linearlayout 设定宽度
wrap_content设定高度
wrap_content
wrap 翻译过来是包裹,conten是内容。那麽这个就是包裹内容的意思,也就是说你的控制元件里面的内容有多大,这个控制元件就有多大。
linearLayout设定内距Padding 让他留边边-左/右
开始写里面的id
button-确认送出
改字的大小
制定 onClick
开始绑定 onClick
程序码变
有时候刚改完 红色 不会马上变黄色
最後显示的TextView-要有id
目前显示
模拟器再重动
改字的大小
要注意import开始写
package com.huang.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void onClick(View view) {
}
}
JAVA 档-照顺序id
反红就是要ALT+ENTER按import class
宣告变数:
用字串string让显示的显现出来~
String all="";
package com.huang.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.CheckBox;
import android.widget.RadioGroup;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
//宣告变数
RadioGroup sex;
CheckBox c1,c2,c3;
TextView show;
String all="";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void onClick(View view) {
}
}
再来要初始化-在onCreate
用 findViewById 找出 sex
package com.huang.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.CheckBox;
import android.widget.RadioGroup;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
//宣告变数
RadioGroup sex;
CheckBox c1,c2,c3;
TextView show;
String all="";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化RadioGroup按钮
sex = findViewById(R.id.sex);
//初始化CheckBox按钮
}
public void onClick(View view) {
}
}
里面管3个~
当要预设选项"预设"被V时-只能选一个
Common Attributes-checked要V
clickable要预设为true 就是可以让"使用者"可以选
从程序码来看:
再回到java档
加入侦听器-RadioGroup有自家的要选
选择OnCheckChangeListener
原来的 int i
改成 int checkedId就是指int的r1,r2,r3的哪个id被点到了
package com.huang.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.CheckBox;
import android.widget.RadioGroup;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
//宣告变数
RadioGroup sex;
CheckBox c1,c2,c3;
TextView show;
String all="";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化RadioGroup按钮
sex = findViewById(R.id.sex);
sex.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int checkedId) {
}
});
//初始化CheckBox按钮
}
public void onClick(View view) {
}
}
用switch去写int checkedId到底选到哪一个
package com.huang.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.CheckBox;
import android.widget.RadioGroup;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
//宣告变数
RadioGroup sex;
CheckBox c1,c2,c3;
TextView show;
String all="";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化RadioGroup按钮
sex = findViewById(R.id.sex);
sex.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int checkedId) {
switch (checkedId){
case R.id.r1:
}
}
});
//初始化CheckBox按钮
}
public void onClick(View view) {
}
}
蒐集文字要宣告字串
RadioGroup是s1
CheckBox 是s2
如果是r1被点到就内容"先生"显示使用Toast模拟器显示不出来建议使用手机
switch後面一定要有break;
switch (checkedId){
case R.id.r1:
s1 = "先生";
Toast.makeText(MainActivity.this,
s1,
Toast.LENGTH_SHORT).show();
break;
}
後面依序r2和r3
package com.huang.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.CheckBox;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
//宣告变数
RadioGroup sex;
CheckBox c1,c2,c3;
TextView show;
String all="";
String s1,s2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化RadioGroup按钮
sex = findViewById(R.id.sex);
sex.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int checkedId) {
switch (checkedId){
case R.id.r1:
s1 = "先生";
Toast.makeText(MainActivity.this, s1,Toast.LENGTH_SHORT).show();
break;
case R.id.r2:
s1 = "女士";
Toast.makeText(MainActivity.this, s1,Toast.LENGTH_SHORT).show();
break;
case R.id.r3:
s1 = "不显示";
Toast.makeText(MainActivity.this, s1,Toast.LENGTH_SHORT).show();
break;
}
}
});
//初始化CheckBox按钮
}
public void onClick(View view) {
}
}
初始化CheckBox按钮
//初始化CheckBox按钮
c1 =findViewById(R.id.c1);
c2 =findViewById(R.id.c2);
c3 =findViewById(R.id.c3);
加 加入侦听器-比较麻烦-一个一个去看有没有被点选
c1.setOnCheckedChangeListener(new MM());
中new MM()目前是假设
初始化TextView
package com.huang.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.CheckBox;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
//宣告变数
RadioGroup sex;
CheckBox c1,c2,c3;
TextView show;
String all="";
String s1,s2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化RadioGroup按钮
sex = findViewById(R.id.sex);
sex.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int checkedId) {
switch (checkedId){
case R.id.r1:
s1 = "先生";
Toast.makeText(MainActivity.this, s1,Toast.LENGTH_SHORT).show();
break;
case R.id.r2:
s1 = "女士";
Toast.makeText(MainActivity.this, s1,Toast.LENGTH_SHORT).show();
break;
case R.id.r3:
s1 = "不显示";
Toast.makeText(MainActivity.this, s1,Toast.LENGTH_SHORT).show();
break;
}
}
});
//初始化CheckBox按钮
c1 =findViewById(R.id.c1);
c2 =findViewById(R.id.c2);
c3 =findViewById(R.id.c3);
c1.setOnCheckedChangeListener(new MM());
c2.setOnCheckedChangeListener(new MM());
c3.setOnCheckedChangeListener(new MM());
show = findViewById(R.id.show);
}
public void onClick(View view) {
}
}
离开了 onCreate
CheckBox的侦听器:内部类
类所以是class
使用alt+enter让他跳出提示解决方
CheckBox的侦听器:内部类
按下变这样
再移上去
implements的3种显示方法:
1-红色灯泡implements
2-Alt+Insert -->implements
3-右键-->Generate -->implements这里选这种
extends与implements的区别:
extends 是继承父类,只要那个类不是宣告为final或者那个类定义为abstract的就能继承,JAVA中不支援多重继承,但是可以用介面来实现,这样就用到了implements,继承只能继承一个类,但implements可以实现多个介面,用逗号分开就行了。
改写 compoundButton, boolean b变成CompoundButton buttonView, boolean isChecked
package com.huang.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
//宣告变数
RadioGroup sex;
CheckBox c1,c2,c3;
TextView show;
String all="";
String s1,s2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化RadioGroup按钮
sex = findViewById(R.id.sex);
sex.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int checkedId) {
switch (checkedId){
case R.id.r1:
s1 = "先生";
Toast.makeText(MainActivity.this, s1,Toast.LENGTH_SHORT).show();
break;
case R.id.r2:
s1 = "女士";
Toast.makeText(MainActivity.this, s1,Toast.LENGTH_SHORT).show();
break;
case R.id.r3:
s1 = "不显示";
Toast.makeText(MainActivity.this, s1,Toast.LENGTH_SHORT).show();
break;
}
}
});
//初始化CheckBox按钮
c1 =findViewById(R.id.c1);
c2 =findViewById(R.id.c2);
c3 =findViewById(R.id.c3);
c1.setOnCheckedChangeListener(new MM());
c2.setOnCheckedChangeListener(new MM());
c3.setOnCheckedChangeListener(new MM());
show = findViewById(R.id.show);
}
//CheckBox的侦听器:内部类
private class MM implements CompoundButton.OnCheckedChangeListener {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
}
}
public void onClick(View view) {
}
}
CheckBox的侦听器:内部类
1.一般父类->判断元件
2.取出元件名称
3.再用if去判断 +判断点选状态
里面也是加入toast用手机测
package com.huang.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
//宣告变数
RadioGroup sex;
CheckBox c1,c2,c3;
TextView show;
String all="";
String s1,s2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化RadioGroup按钮
sex = findViewById(R.id.sex);
sex.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int checkedId) {
switch (checkedId){
case R.id.r1:
s1 = "先生";
Toast.makeText(MainActivity.this, s1,Toast.LENGTH_SHORT).show();
break;
case R.id.r2:
s1 = "女士";
Toast.makeText(MainActivity.this, s1,Toast.LENGTH_SHORT).show();
break;
case R.id.r3:
s1 = "不显示";
Toast.makeText(MainActivity.this, s1,Toast.LENGTH_SHORT).show();
break;
}
}
});
//初始化CheckBox按钮
c1 =findViewById(R.id.c1);
c2 =findViewById(R.id.c2);
c3 =findViewById(R.id.c3);
c1.setOnCheckedChangeListener(new MM());
c2.setOnCheckedChangeListener(new MM());
c3.setOnCheckedChangeListener(new MM());
show = findViewById(R.id.show);
}
//CheckBox的侦听器:内部类
private class MM implements CompoundButton.OnCheckedChangeListener {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
//判断元件
CheckBox box=(CheckBox) buttonView;
//取出元件的名称
String name = box.getText().toString();
//判断点选状态
if(isChecked){
Toast.makeText(MainActivity.this,name+"被选中",Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(MainActivity.this,name+"被取消",Toast.LENGTH_SHORT).show();
}
}
}
public void onClick(View view) {
}
}
也是要用手机测不然TOAST模拟器不能
太长收起来
按钮收集资料,显示在show-常用
使用for each的语法:
for-each 回圈
当我们想要存取一个阵列或集合里面的元素时,for-each回圈是个简单且有效率的方法
for-each回圈的格式如下:
for(元素型态 回圈控制变数 : 集合或阵列名称)
//回圈主体;
for-each有几项注意要点
1.只能从头开始走访每个元素,不能从集合或阵列的尾端向前走访
2.只能取出集合或阵列里的元素不能置换
3.foe-each回圈里面的变数是区域变数
下面这个范例在示范传统for回圈和for-each回圈读取阵列元素
你会发现for-each简洁许多
public class HelloDate {
public static void main(String args[]) {
int arr[]={5,3,8};
//传统for回圈
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
System.out.println();
//for-each loop
for(int i:arr){
System.out.print(i+" ");
}
}
}
这里写的-
public void onClick(View view) {
//收集checkBox的结果
int[] cbs ={R.id.c1,R.id.c2,R.id.c3};
CheckBox cc;
for(int i:cbs){
cc =findViewById(i);
if(cc.isChecked()){
s2 += cc.getText()+"\t";
}
}
all = s1+"\n"+s2;
}
目前显示的全部:
package com.huang.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
//宣告变数
RadioGroup sex;
CheckBox c1,c2,c3;
TextView show;
String all="";
String s1,s2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化RadioGroup按钮
sex = findViewById(R.id.sex);
sex.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int checkedId) {
switch (checkedId){
case R.id.r1:
s1 = "先生";
Toast.makeText(MainActivity.this, s1,Toast.LENGTH_SHORT).show();
break;
case R.id.r2:
s1 = "女士";
Toast.makeText(MainActivity.this, s1,Toast.LENGTH_SHORT).show();
break;
case R.id.r3:
s1 = "不显示";
Toast.makeText(MainActivity.this, s1,Toast.LENGTH_SHORT).show();
break;
}
}
});
//初始化CheckBox按钮
c1 =findViewById(R.id.c1);
c2 =findViewById(R.id.c2);
c3 =findViewById(R.id.c3);
c1.setOnCheckedChangeListener(new MM());
c2.setOnCheckedChangeListener(new MM());
c3.setOnCheckedChangeListener(new MM());
show = findViewById(R.id.show);
}
//CheckBox的侦听器:内部类
private class MM implements CompoundButton.OnCheckedChangeListener {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
//判断元件
CheckBox box=(CheckBox) buttonView;
//取出元件的名称
String name = box.getText().toString();
//判断点选状态
if(isChecked){
Toast.makeText(MainActivity.this,name+"被选中",Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(MainActivity.this,name+"被取消",Toast.LENGTH_SHORT).show();
}
}
}
//按钮收集资料,显示在show
public void onClick(View view) {
//收集checkBox的结果
int[] cbs ={R.id.c1,R.id.c2,R.id.c3};
CheckBox cc;
for(int i:cbs){
cc =findViewById(i);
if(cc.isChecked()){
s2 += cc.getText()+"\t";
}
}
all = s1+"\n"+s2;
}
}
要显示要写show
package com.huang.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
//宣告变数
RadioGroup sex;
CheckBox c1,c2,c3;
TextView show;
String all="";
String s1,s2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化RadioGroup按钮
sex = findViewById(R.id.sex);
sex.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int checkedId) {
switch (checkedId){
case R.id.r1:
s1 = "先生";
Toast.makeText(MainActivity.this, s1,Toast.LENGTH_SHORT).show();
break;
case R.id.r2:
s1 = "女士";
Toast.makeText(MainActivity.this, s1,Toast.LENGTH_SHORT).show();
break;
case R.id.r3:
s1 = "不显示";
Toast.makeText(MainActivity.this, s1,Toast.LENGTH_SHORT).show();
break;
}
}
});
//初始化CheckBox按钮
c1 =findViewById(R.id.c1);
c2 =findViewById(R.id.c2);
c3 =findViewById(R.id.c3);
c1.setOnCheckedChangeListener(new MM());
c2.setOnCheckedChangeListener(new MM());
c3.setOnCheckedChangeListener(new MM());
show = findViewById(R.id.show);
}
//CheckBox的侦听器:内部类
private class MM implements CompoundButton.OnCheckedChangeListener {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
//判断元件
CheckBox box=(CheckBox) buttonView;
//取出元件的名称
String name = box.getText().toString();
//判断点选状态
if(isChecked){
Toast.makeText(MainActivity.this,name+"被选中",Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(MainActivity.this,name+"被取消",Toast.LENGTH_SHORT).show();
}
}
}
//按钮收集资料,显示在show
public void onClick(View view) {
//收集checkBox的结果
int[] cbs ={R.id.c1,R.id.c2,R.id.c3};
CheckBox cc;
for(int i:cbs){
cc =findViewById(i);
if(cc.isChecked()){
s2 += cc.getText()+"\t";
}
}
all = s1+"\n"+s2;
show.setText(all);
}
}
如果不要按钮直接空按是空白
要改-s1
累积经验越写越完美
如果不要按钮直接空按是空白
要改-s2
下面多判断式:
package com.huang.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
//宣告变数
RadioGroup sex;
CheckBox c1,c2,c3;
TextView show;
String all="";
String s1="先生",s2="没有点选";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化RadioGroup按钮
sex = findViewById(R.id.sex);
sex.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int checkedId) {
switch (checkedId){
case R.id.r1:
s1 = "先生";
Toast.makeText(MainActivity.this, s1,Toast.LENGTH_SHORT).show();
break;
case R.id.r2:
s1 = "女士";
Toast.makeText(MainActivity.this, s1,Toast.LENGTH_SHORT).show();
break;
case R.id.r3:
s1 = "不显示";
Toast.makeText(MainActivity.this, s1,Toast.LENGTH_SHORT).show();
break;
}
}
});
//初始化CheckBox按钮
c1 =findViewById(R.id.c1);
c2 =findViewById(R.id.c2);
c3 =findViewById(R.id.c3);
//c1.setOnCheckedChangeListener(new MM());
//c2.setOnCheckedChangeListener(new MM());
//c3.setOnCheckedChangeListener(new MM());
show = findViewById(R.id.show);
}
//CheckBox的侦听器:内部类
private class MM implements CompoundButton.OnCheckedChangeListener {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
//判断元件
CheckBox box=(CheckBox) buttonView;
//取出元件的名称
String name = box.getText().toString();
//判断点选状态
if(isChecked){
Toast.makeText(MainActivity.this,name+"被选中",Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(MainActivity.this,name+"被取消",Toast.LENGTH_SHORT).show();
}
}
}
//按钮收集资料,显示在show
public void onClick(View view) {
//先清空s2
s2="";
//收集checkBox的结果
int[] cbs ={R.id.c1,R.id.c2,R.id.c3};
CheckBox cc;
for(int i:cbs){
//CheckBox cc =findViewById(i);
cc =findViewById(i);
if(cc.isChecked()){
s2 += cc.getText()+"\t";
}
}
//判断文字栏位是否为空
if(TextUtils.isEmpty(s2)){
s2="没有点选";
}
all = s1+"\n"+s2;
show.setText(all);
}
}
TextUtils.isEmpty的方法。但其实TextUtils不止有这一个方法。这里我列举出TextUtils中常用的四个方法,供大家需要时查阅。
isEmpty:判断字串是否为空值。
getTrimmedLength:获取字串去除头尾空格之後的长度。
isDigitsOnly:判断字串是否全部由数字组成。
ellipsize:如果字串超长,则返回按规则截断并新增省略号的字串。
延续上一篇因为太长了
目前的程序码:
package com.huang.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
//宣告变数
RadioGroup sex;
CheckBox c1,c2,c3;
TextView show;
String all="";
String s1,s2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化RadioGroup按钮
sex = findViewById(R.id.sex);
sex.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int checkedId) {
switch (checkedId){
case R.id.r1:
s1 = "先生";
Toast.makeText(MainActivity.this, s1,Toast.LENGTH_SHORT).show();
break;
case R.id.r2:
s1 = "女士";
Toast.makeText(MainActivity.this, s1,Toast.LENGTH_SHORT).show();
break;
case R.id.r3:
s1 = "不显示";
Toast.makeText(MainActivity.this, s1,Toast.LENGTH_SHORT).show();
break;
}
}
});
//初始化CheckBox按钮
c1 =findViewById(R.id.c1);
c2 =findViewById(R.id.c2);
c3 =findViewById(R.id.c3);
c1.setOnCheckedChangeListener(new MM());
c2.setOnCheckedChangeListener(new MM());
c3.setOnCheckedChangeListener(new MM());
show = findViewById(R.id.show);
}
//CheckBox的侦听器:内部类
private class MM implements CompoundButton.OnCheckedChangeListener {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
//判断元件
CheckBox box=(CheckBox) buttonView;
//取出元件的名称
String name = box.getText().toString();
//判断点选状态
if(isChecked){
Toast.makeText(MainActivity.this,name+"被选中",Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(MainActivity.this,name+"被取消",Toast.LENGTH_SHORT).show();
}
}
}
//按钮收集资料,显示在show
public void onClick(View view) {
//收集checkBox的结果
int[] cbs ={R.id.c1,R.id.c2,R.id.c3};
CheckBox cc;
for(int i:cbs){
cc =findViewById(i);
if(cc.isChecked()){
s2 += cc.getText()+"\t";
}
}
all = s1+"\n"+s2;
show.setText(all);
}
}
手机显示:
c1,c2,c3也可以比较简单的写法:
setOnCheckedChangeListener侦听器关掉也是可以
下面配合上面
private class MM implements CompoundButton.OnCheckedChangeListener {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
//判断元件
CheckBox box=(CheckBox) buttonView;
//取出元件的名称
String name = box.getText().toString();
//判断点选状态
if(isChecked){
Toast.makeText(MainActivity.this,name+"被选中",Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(MainActivity.this,name+"被取消",Toast.LENGTH_SHORT).show();
}
}
}
目前会有null是因为没有初始化完成
要改 String s1,s2;这句
要变成String s1="",s2="";
package com.huang.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
//宣告变数
RadioGroup sex;
CheckBox c1,c2,c3;
TextView show;
String all="";
String s1="",s2="";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化RadioGroup按钮
sex = findViewById(R.id.sex);
sex.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int checkedId) {
switch (checkedId){
case R.id.r1:
s1 = "先生";
Toast.makeText(MainActivity.this, s1,Toast.LENGTH_SHORT).show();
break;
case R.id.r2:
s1 = "女士";
Toast.makeText(MainActivity.this, s1,Toast.LENGTH_SHORT).show();
break;
case R.id.r3:
s1 = "不显示";
Toast.makeText(MainActivity.this, s1,Toast.LENGTH_SHORT).show();
break;
}
}
});
//初始化CheckBox按钮
c1 =findViewById(R.id.c1);
c2 =findViewById(R.id.c2);
c3 =findViewById(R.id.c3);
//c1.setOnCheckedChangeListener(new MM());
//c2.setOnCheckedChangeListener(new MM());
//c3.setOnCheckedChangeListener(new MM());
show = findViewById(R.id.show);
}
//CheckBox的侦听器:内部类
private class MM implements CompoundButton.OnCheckedChangeListener {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
//判断元件
CheckBox box=(CheckBox) buttonView;
//取出元件的名称
String name = box.getText().toString();
//判断点选状态
if(isChecked){
Toast.makeText(MainActivity.this,name+"被选中",Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(MainActivity.this,name+"被取消",Toast.LENGTH_SHORT).show();
}
}
}
//按钮收集资料,显示在show
public void onClick(View view) {
//收集checkBox的结果
int[] cbs ={R.id.c1,R.id.c2,R.id.c3};
CheckBox cc;
for(int i:cbs){
//CheckBox cc =findViewById(i);
cc =findViewById(i);
if(cc.isChecked()){
s2 += cc.getText()+"\t";
}
}
all = s1+"\n"+s2;
show.setText(all);
}
}
当使用者反覆操作.下面有累积的感觉
就是s2先清空再收集s2="";
package com.huang.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
//宣告变数
RadioGroup sex;
CheckBox c1,c2,c3;
TextView show;
String all="";
String s1="",s2="";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化RadioGroup按钮
sex = findViewById(R.id.sex);
sex.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int checkedId) {
switch (checkedId){
case R.id.r1:
s1 = "先生";
Toast.makeText(MainActivity.this, s1,Toast.LENGTH_SHORT).show();
break;
case R.id.r2:
s1 = "女士";
Toast.makeText(MainActivity.this, s1,Toast.LENGTH_SHORT).show();
break;
case R.id.r3:
s1 = "不显示";
Toast.makeText(MainActivity.this, s1,Toast.LENGTH_SHORT).show();
break;
}
}
});
//初始化CheckBox按钮
c1 =findViewById(R.id.c1);
c2 =findViewById(R.id.c2);
c3 =findViewById(R.id.c3);
//c1.setOnCheckedChangeListener(new MM());
//c2.setOnCheckedChangeListener(new MM());
//c3.setOnCheckedChangeListener(new MM());
show = findViewById(R.id.show);
}
//CheckBox的侦听器:内部类
private class MM implements CompoundButton.OnCheckedChangeListener {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
//判断元件
CheckBox box=(CheckBox) buttonView;
//取出元件的名称
String name = box.getText().toString();
//判断点选状态
if(isChecked){
Toast.makeText(MainActivity.this,name+"被选中",Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(MainActivity.this,name+"被取消",Toast.LENGTH_SHORT).show();
}
}
}
//按钮收集资料,显示在show
public void onClick(View view) {
//先清空s2
s2="";
//收集checkBox的结果
int[] cbs ={R.id.c1,R.id.c2,R.id.c3};
CheckBox cc;
for(int i:cbs){
//CheckBox cc =findViewById(i);
cc =findViewById(i);
if(cc.isChecked()){
s2 += cc.getText()+"\t";
}
}
all = s1+"\n"+s2;
show.setText(all);
}
}
一个app很少只有一个画面-页面跳转
所以後面就要难难的了-要传DATA
来写-成列商品-listview
跟spinner不同(这个要按展开纽)
点餐~20220130再做一次
重点:
1-新增Activity
2-版面规划-使用参考线(用%这个真的难~>< )
3-页面跳转
版面规划-使用参考线(用%这个真的难~>< )
祝大家中秋节快乐~
因为去了"和风"文化季~
当手残把 #android 工具列关掉时???
当 #android 出现错误讯息
#The minCompileSdk (31) is greater than this module's compileSdkVersion (android-30)
https://www.youtube.com/watch?v=4gUzUuk9X0k
太长了~所以剩下一篇
下篇来写-成列商品-listview
跟spinner不同(这个要按展开纽)
前言 对於大量的资料处理,使用串列的走访是一种十分没有效率的方法,其效率会根据串列的长度而不断线性成...
第七天~ 我们昨天写了个 Hello World 出来, 但是这只是单单把字给秀出来而已, 假如我们...
之前有提到 CNN 业会用在 ML ,那甚麽是 ML 呢? Machine Learning 机器学...
藉由Google Cloud Function建构DialogFlow Fulfillment 透过...
转换操作符 map/mapError map操作符会执行给定的闭包,将上游发布的内容进行转换,然後再...