借出时间相关

来源:3-2 项目作业

weixin_慕斯4329049

2021-05-17 15:27:34

JAVA文件


import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.RadioGroup;
import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import com.example.ui_works.modul.Book;
import com.example.ui_works.modul.Person;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;

public class MainActivity extends AppCompatActivity {

    private EditText readerName;
    private RadioGroup readerSex;
    private EditText borrowTime;
    private TextView returnTime;
    private CheckBox historyHobby;
    private CheckBox suspenseHobby;
    private CheckBox litAndArtHobby;
    private SeekBar ageSeekBar;
    private ImageView bookImage;
    private Button searchBook;
    private Button next;
    private ArrayList<Book> mBooks;
    private Person mperson;
    private ArrayList<Book> booksResult;
    private Date borrowDate;
    private SimpleDateFormat sdf;
    private Date returnDate;
    private boolean isLitAndArt;
    private boolean isSuspense;
    private boolean isHistory;
    private TextView starAge;
    private int bookIndex;
    private Book book;
    private int readerAge;
    private TextView bookName;
    private TextView bookType;
    private TextView suitableAge;
    private TextView searchResult;


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

        //初始化控件
        findView();

        //初始化数据
        dataInit();

        //添加监听器
        addListener();

    }

    private void addListener() {
        //性别监听器
        readerSex.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                switch (checkedId){
                    case R.id.mealRadioButton:
                        mperson.setSex("男");
                        break;
                    case R.id.femealRadioButton:
                        mperson.setSex("女");
                        break;
                }
            }
        });

        //设置日期文本监听器
        borrowTime.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

            }

            @Override
            public void afterTextChanged(Editable s) {
                sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//                sdf = new SimpleDateFormat("yyyy-MM-dd");

                try {
                    //String转换为Date
                    mperson.setTime(s.toString());
                    borrowDate = sdf.parse(borrowTime.getText().toString());
                    returnDate = sdf.parse(returnTime.getText().toString());
                } catch (ParseException e) {
                    e.printStackTrace();
                }
            }
        });

        //爱好监听器
        historyHobby.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                isHistory = isChecked;
            }
        });
        suspenseHobby.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                isSuspense = isChecked;
            }
        });
        litAndArtHobby.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                isLitAndArt = isChecked;
            }
        });

        //设置年龄监听器
        ageSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {

            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {

            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
                starAge = findViewById(R.id.starAgeTextView);
                starAge.setText(ageSeekBar.getProgress()+"");
                readerAge=ageSeekBar.getProgress();
            }
        });

        //查找按钮监听器
        searchBook.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mperson.setName(readerName.getText().toString());

                //判断时间
                try {
                    if (borrowDate.after(returnDate)){
                        Toast.makeText(MainActivity.this,"借书年份晚于还书年份,退出",Toast.LENGTH_SHORT).show();
                        finish();
                    }
                }catch (Exception e){

                }

                search();
                Toast.makeText(MainActivity.this,"显示"+mperson,Toast.LENGTH_SHORT).show();
            }
        });

        //next按钮监听器
        next.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                bookIndex++;
                searchResult.setText("符合条件的书本有"+(booksResult.size()-bookIndex)+"本");

                if (bookIndex<booksResult.size()){

                    mperson.setBook(booksResult.get(bookIndex).getName());
                    bookImage.setImageResource(booksResult.get(bookIndex).getPicture());
                    bookName.setText(booksResult.get(bookIndex).getName());
                    bookType.setText(booksResult.get(bookIndex).getType());
                    suitableAge.setText(booksResult.get(bookIndex).getSuitableAge()+"");

                    Toast.makeText(MainActivity.this,"显示"+mperson,Toast.LENGTH_SHORT).show();
                }else {
                    Toast.makeText(MainActivity.this,"没有啦",Toast.LENGTH_SHORT).show();
                }

            }
        });
    }

    private void search() {
        if (booksResult == null){
            booksResult = new ArrayList<>();
        }
        booksResult.clear();

        //第几本书
        bookIndex = 0;

        //遍历书
        for (int i = 0; i < mBooks.size(); i++) {
            book = mBooks.get(i);
            if (book != null){
                if (book.getSuitableAge()<readerAge &&
                        (book.isHistory() == isHistory ||
                                book.isSuspense() == isSuspense ||
                                book.isLitAndArt() == isLitAndArt)){
                    booksResult.add(book);

                }
            }
        }
        if (bookIndex<booksResult.size()){
            bookImage.setImageResource(booksResult.get(bookIndex).getPicture());

            bookName.setText(booksResult.get(bookIndex).getName());
            bookType.setText(booksResult.get(bookIndex).getType());
            suitableAge.setText(booksResult.get(bookIndex).getSuitableAge()+"");
            mperson.setBook(booksResult.get(bookIndex).getName());
            searchResult.setText("符合条件的书本有"+booksResult.size()+"本");
        }
    }

    private void dataInit() {
        mBooks = new ArrayList<>();

        mBooks.add(new Book("人生感悟",30,"哲理",R.drawable.aa,false,false,true));
        mBooks.add(new Book("边城",20,"回忆录",R.drawable.bb,true,false,true));
        mBooks.add(new Book("saplr",18,"技术",R.drawable.cc,false,false,true));
        mBooks.add(new Book("光辉岁月",40,"回忆录",R.drawable.dd,true,false,false));
        mBooks.add(new Book("唐诗三百首",18,"诗词",R.drawable.ee,true,false,true));
        mBooks.add(new Book("艺术画作",15,"艺术",R.drawable.f,false,false,true));
        mBooks.add(new Book("中国古代文学纲要",18,"教学",R.drawable.ff,true,false,false));
        mBooks.add(new Book("无花果",25,"叙述",R.drawable.gg,false,false,true));
        mBooks.add(new Book("古镇记忆",18,"回忆录",R.drawable.hh,false,false,true));

        mperson = new Person();

        booksResult = new ArrayList<>();

    }

    private void findView() {
        readerName = findViewById(R.id.nameEditText);
        readerSex = findViewById(R.id.sexRadioGroup);
        borrowTime = findViewById(R.id.borrowTimeEditText);
        returnTime = findViewById(R.id.returnTimeTextView);
        historyHobby = findViewById(R.id.historyCheckBox);
        suspenseHobby = findViewById(R.id.suspenseCheckBox);
        litAndArtHobby = findViewById(R.id.LitAndArtCheckBox);
        ageSeekBar = findViewById(R.id.ageSeekBar);
        bookImage = findViewById(R.id.image);
        searchBook = findViewById(R.id.searchButton);
        next = findViewById(R.id.nextButton);
        bookName = findViewById(R.id.bookeNameTextView);
        bookType = findViewById(R.id.typeTextView);
        suitableAge = findViewById(R.id.suitableAgeTextView);
        searchResult = findViewById(R.id.searchResultTextView);
    }
}

麻烦问一下,借出时间那里不管输入什么,都能执行下去,应该要怎么加个判断的,我目前使用了after()方法,但好像没什么用

写回答

1回答

LovelyChubby

2021-05-18

Date1.after(Date2),当Date1大于Date2时,返回TRUE,当小于等于时,返回false;

即Date2比Date1小的true/false,当Date2日期比Date1小的时候为true,否则为false


Date1.before(Date2),当Date1小于Date2时,返回TRUE,当大于等于时,返回false;


理论上你的代码是没错的。 但是如果你的brrowDate在格式化的时候,抛出异常了,after比较的时候则会出现问题。可以断点看下brrowDate在格式化的时候是不是抛异常了

0

0 学习 · 2907 问题

查看课程