借出时间相关
来源: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在格式化的时候是不是抛异常了
相似问题