我正在使用电影项目进行简单的回收查看.当我尝试添加新项目时,它们不会立即显示在recyclerview中.出于某种原因,我必须向下滚动以便第一个项目消失,然后再向上滚动以显示新项目(它在索引0处添加).
适配器:
public class MovieCardAdapter extends RecyclerView.Adapter<MovieCardAdapter.MovieViewHolder> {
List<Movie> movieList;
public MovieCardAdapter(final List<Movie> movieList) {
this.movieList = movieList;
}
public void addItem(int position, final Movie movie){
movieList.add(position,movie);
notifyItemInserted(position);
}
public void removeItem(final Movie movie){
final int indexOf = movieList.indexOf(movie);
movieList.remove(movie);
notifyItemRemoved(indexOf);
}
public void updateItems(final List<Movie> items){
movieList = items;
notifyDataSetChanged();
}
@Override
public MovieViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View itemView = LayoutInflater.
from(viewGroup.getContext()).
inflate(R.layout.movie_row, viewGroup, false);
return new MovieViewHolder(itemView);
}
@Override
public long getItemId(int position) {
return super.getItemId(position); …Run Code Online (Sandbox Code Playgroud) 我在javaFX中有一个TextField,其背景颜色相应地改变,如果内容是否有效.
有效:
987654321 1
987654321 21
0101 9 1
1701 91 1 2
4101 917 1 0 43
0801 9 178 2 0
0111 9 1 084 0
Run Code Online (Sandbox Code Playgroud)
无效:
0101 9 1 0 1 0
3124
0314 9
Run Code Online (Sandbox Code Playgroud)
基本上:
现在将这些(有效)行中的一行视为一个"Ident".
目前的正则表达式是:
final String base = "(\\d+\\s+\\d+)|(\\d+\\s+\\d+\\s+\\d+(\\s+\\d+)?(\\s+\\d+)?)|(\\d+\\s+\\d+\\s+\\d+)|(\\d+\\s+\\d+\\s+\\d+\\s+\\d+)|(\\d+\\s+\\d+\\s+\\d+\\s+\\d+\\s+\\d+)";
Run Code Online (Sandbox Code Playgroud)
到目前为止工作得很好,但现在我想包括csv.所以我只能输入一个我以前使用的标识,或者用逗号(,)分隔的多个标识符,但总共不超过五个标识符.
我的尝试:
final String pattern = String.format("(%s,?\\s*){1,5}",base);
Run Code Online (Sandbox Code Playgroud)
这使我可以输入: