5-2作业中加了这句话,age_01.setText(age);,他直接退出程序了

5-2作业中加了这句话,age_01.setText(age);,他直接退出程序了

public class MainActivity extends AppCompatActivity {

   //定义全局变量
   private EditText name; //姓名
   private RadioGroup sex; //性别
   private EditText borrowtime; //借出时间
   private CheckBox history, detect, art; //复选框中的内容
   private TextView age_01;
   private SeekBar age_02;
   private ImageView image;//图片
   private TextView bookname, booktype, bookage;
   private Button find;
   private TextView content;
   private Button next;
   private SeekBarListener seekBarListener;
   private int age = 18;


   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);

       //绑定控件
       initialize();
       //添加年龄改变的监听器
       age_02.setOnSeekBarChangeListener(seekBarListener);
   }


   private void initialize() {
       name = (EditText) findViewById(R.id.name);
       sex = (RadioGroup) findViewById(R.id.sex);
       borrowtime = (EditText) findViewById(R.id.borrowtime);
       history = (CheckBox) findViewById(R.id.history);
       detect = (CheckBox) findViewById(R.id.detect);
       art = (CheckBox) findViewById(R.id.art);
       age_01 = (TextView) findViewById(R.id.age_01);
       seekBarListener=new SeekBarListener();
       age_02 = (SeekBar) findViewById(R.id.age_02);
       image = (ImageView) findViewById(R.id.image);
       bookname = (TextView) findViewById(R.id.bookname);
       booktype = (TextView) findViewById(R.id.booktype);
       bookage = (TextView) findViewById(R.id.bookage);
       find = (Button) findViewById(R.id.find);
       content = (TextView) findViewById(R.id.content);
       next = (Button) findViewById(R.id.next);
   }


   class SeekBarListener implements SeekBar.OnSeekBarChangeListener {

       @Override
       public void onProgressChanged(SeekBar seekBar, int i, boolean b) {

       }

       @Override
       public void onStartTrackingTouch(SeekBar seekBar) {
           age=seekBar.getProgress();
       }

       @Override
       public void onStopTrackingTouch(SeekBar seekBar) {
         //  age = seekBar.getProgress();
         //  Toast.makeText(MainActivity.this,"年龄:"+age,Toast.LENGTH_SHORT).show();
       }
   }
}

正在回答

登陆购买课程后可参与讨论,去登陆

5回答

常用于age_01.setText(传一个字符串),但也可以age_01.setText(传一个int)如果传递的是int,系统则会认为,这是从values的strings中的那个资源,而你的age又不是资源,所以就会报错了。你可以改成age_01.setText(""+age);就不会报错了。祝:学习愉快


  • Dosd 提问者 #1
    嗯,是对的,谢谢老师,老师,我还有个问题,就是我没有点击查找的话,就直接点击下一个,程序就自动退出了。我上个作业也是这样的,不过上个作业我已经交了。 这是讲师给的点评, :程序可以运行,但当未找到菜品时会发生IndexOutOfBoundsException异常,是因为逻辑不严谨,在ButtonListener的 case R.id.tn_click:中非 if(num==list_get.size()-1)就直接num++; showPic(num);,在做之前你应该先判断一下list_get是不是为null,长度是不是为0。如果是那就证明没有符合的菜品,还需要把imageView设置成默认的图片。作业中如果有疑问,可在问答区进行提问,我们的助教老师会帮您答疑解惑,祝学习愉快! 我马上把代码粘上去
    2017-07-21 16:56:15
  • Dosd 提问者 #2
    非常感谢!
    2017-07-21 17:03:35
好帮手慕雪 2017-07-22 14:15:19

case R.id.find:的下面判断这两个时间呗,用Date的after()比较就可以了。如果不符合就finsh();

提问者 Dosd 2017-07-21 20:00:09

class ButtonListener implements View.OnClickListener {

   @Override
   public void onClick(View view) {
       switch (view.getId()) {
           case R.id.find:
               int i=0;
               i++;
               if(i<=1) {
                   borrowtime.setText(borrowtime.getText().toString() + " 00:00:00");
               }
               list_get.clear();
               checkDate();
               if(list_get.size()!=0) {
                   content.setText("符合条件的书有" + (list_get.size() - 1) + "本");
               }
               break;

好帮手慕雪 2017-07-21 17:54:33

批复中不是写的很清楚吗?在if (num == list_get.size() - 1) {之前先写if(list_get==null || list_get.size()==0){//设置你的imageView成默认的图片,就是一进程序的那个图片;Toast一下提示用户没找到,并break;}

  • 提问者 Dosd #1
    嗯,老师,我这个问题解决了,现在还有最后两个问题。第一个问题就是,我每点一次查找,他时间编辑框后面就会加上一个“00:00:00”,这个该怎么解决啊?代码我附在下方
    2017-07-21 19:58:58
  • 提问者 Dosd #2
    老师您好,我还差最后一个问题了。就是那个借书时间的问题,我没办法完成这个像视频中一开始因为时间不对直接退出的这一部分。想请教一下老师有何高见?
    2017-07-21 22:06:40
提问者 Dosd 2017-07-21 16:56:58
class ButtonListener implements View.OnClickListener{

    @Override
    public void onClick(View view) {
        switch (view.getId())
        {
            case R.id.find:
                list_get.clear();
                checkDate();
                break;
            case R.id.next:
                if(next.isClickable()) {
                    if (num == list_get.size() - 1) {
                        Toast.makeText(MainActivity.this, "已经到末端,从头开始显示", Toast.LENGTH_SHORT).show();
                        num = 0;
                        showPic(num);
                    } else {
                        num++;
                        showPic(num);
                    }
                }
                break;
        }
    }
}


问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
Android从界面到数据存储2018版
  • 参与学习       504    人
  • 提交作业       1003    份
  • 解答问题       1044    个

本专题是专为有Java语言基础想入坑Android开发的同学们准备的。从AndroidUI基础一直到网络,数据存储,一步到位入门Android开发。如果你会Java,那就不要犹豫了~ ~

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师