Example #1
0
 public LoadTask(Context context, SearchRoom searchRoom, LoadMoreWrapper loadMoreWrapper, Condition condition)
 {
     this.context         = context;
     this.searchRoom      = searchRoom;
     this.loadMoreWrapper = loadMoreWrapper;
     this.condition       = condition;
 }
Example #2
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.MainSearch);
            #region 界面下方的教室信息链表
            SearchRoom           searchRoom        = new SearchRoom(this);                                       //创建一个搜索类
            RecyclerView         RoomRecyclertView = FindViewById <RecyclerView>(Resource.Id.RoomRecyclertView); //绑定链表
            RecyclerView.Adapter roomlist_adapter  = new RecyclerViewAdapter(searchRoom.Show_Datas, this);       //创建适配器
            LoadMoreWrapper      loadMoreWrapper   = new LoadMoreWrapper(roomlist_adapter);                      //创建含有加载更多的适配器
            RoomRecyclertView.SetLayoutManager(new LinearLayoutManager(this));                                   //
            RoomRecyclertView.SetAdapter(loadMoreWrapper);                                                       //设置链表的适配器
            RoomRecyclertView.AddOnScrollListener(new Loadmore(this, searchRoom, loadMoreWrapper));              //设置滑动到底部时加载更多
            Detail DetailView = new Detail(this);                                                                //教室详细信息页面
            ((RecyclerViewAdapter)roomlist_adapter).OnClickEventHandler += (RoomNum) =>
            {                                                                                                    //点击教室后展开详细页面 传入教室相关信息
                foreach (var room in searchRoom.RoomList)
                {
                    if (room.RoomNum.Equals(RoomNum))
                    {
                        DetailView.ShowDetail(room);
                        break;
                    }
                }
            };
            #endregion
            #region 左菜单
            /*左菜单的toolbar呼出按钮*/
            DrawerLayout drawerLayout       = FindViewById <DrawerLayout>(Resource.Id.drawerLayout);
            Button       CalLeftMenu_button = FindViewById <Button>(Resource.Id.CalLeftMenu_button);
            CalLeftMenu_button.Click += (o, e) =>
            {
                drawerLayout.OpenDrawer((int)GravityFlags.Start);
            };
            //关于
            ImageView AboutimageView = FindViewById <ImageView>(Resource.Id.AboutimageView);
            TextView  AboutText      = FindViewById <TextView>(Resource.Id.AboutText);
            AboutimageView.Click += AboutimageView_Click;
            AboutText.Click      += AboutimageView_Click;
            void AboutimageView_Click(object sender, EventArgs e)
            {
                Intent intent = new Intent(this, typeof(AboutActivity));

                //启动关于界面
                intent.SetFlags(ActivityFlags.SingleTop);
                StartActivity(intent);
            }

            //吐槽
            ImageView TocaoimageView = FindViewById <ImageView>(Resource.Id.TocaoimageView);
            TextView  TocaoText      = FindViewById <TextView>(Resource.Id.TocaoText);
            TocaoimageView.Click += TocaoimageView_Click;
            TocaoText.Click      += TocaoimageView_Click;
            void TocaoimageView_Click(object sender, EventArgs e)
            {
                Intent intent = new Intent(this, typeof(TuCaoFakeActivity));

                //启动假吐槽界面
                intent.SetFlags(ActivityFlags.SingleTop);
                StartActivity(intent);
            }

            TocaoimageView.LongClick += TocaoimageView_LongClick;
            TocaoText.LongClick      += TocaoimageView_LongClick;
            void TocaoimageView_LongClick(object sender, View.LongClickEventArgs e)
            {
                Intent intent = new Intent(this, typeof(TuCaoActivity));

                //启动吐槽界面
                intent.SetFlags(ActivityFlags.SingleTop);
                StartActivity(intent);
            }

            /*左菜单的版本号*/
            TextView VersionCode = FindViewById <TextView>(Resource.Id.VersionCodeText);
            VersionCode.Text = "版本 " + APKVersionCodeUtils.GetVerName(this);
            #endregion
            #region 搜索条件
            conditions = new Condition(this, searchRoom, loadMoreWrapper);
            #endregion
            #region 搜索栏
            EditText SearchBox    = FindViewById <EditText>(Resource.Id.edit_search);
            Button   SearchButton = FindViewById <Button>(Resource.Id.SearchButton);
            /*搜索提示*/
            string  Tips    = GetString(Resource.String.Tip);
            JObject jObject = (JObject)JsonConvert.DeserializeObject(Tips);
            JArray  jArray  = (JArray)jObject["Tips"];
            Random  rd      = new Random();
            SearchBox.Hint = jArray[rd.Next(0, jArray.Count)].ToString();
            /*开始搜索教室*/
            /*第一次启动搜索一次防止说空*/
            loadMoreWrapper.LoadState = LoadMoreWrapper.LOADING;
            new LoadTask(this, searchRoom, loadMoreWrapper, conditions).Execute("101");
            SearchBox.EditorAction += (sender, args) =>
            {
                if (args.ActionId == ImeAction.Search)
                {
                    if (RoomRecyclertView.GetAdapter().ItemCount > 3)
                    {
                        RoomRecyclertView.ScrollToPosition(0);
                    }
                    searchRoom.Show_Datas.Clear();//清空显示数据
                    loadMoreWrapper.LoadState = LoadMoreWrapper.LOADING;
                    new LoadTask(this, searchRoom, loadMoreWrapper, conditions).Execute(SearchBox.Text);
                }
            };
            SearchButton.Click += (sender, args) =>
            {
                if (RoomRecyclertView.GetAdapter().ItemCount > 3)
                {
                    RoomRecyclertView.ScrollToPosition(0);
                }
                searchRoom.Show_Datas.Clear();//清空显示数据
                loadMoreWrapper.LoadState = LoadMoreWrapper.LOADING;
                new LoadTask(this, searchRoom, loadMoreWrapper, conditions).Execute(SearchBox.Text);
            };
            /*左右按钮换颜色*/
            AppBarLayout layout = FindViewById <AppBarLayout>(Resource.Id.appBarLayout1);
            layout.OffsetChanged += (object sender, AppBarLayout.OffsetChangedEventArgs e) =>
            {
                int gray = 255;
                if (-e.VerticalOffset + 162 < 255)
                {
                    gray = -e.VerticalOffset + 162;
                }
                Color filtercolor = Color.Rgb(255, 242, gray);
                CalLeftMenu_button.Background.SetColorFilter(filtercolor, PorterDuff.Mode.Multiply);
                SearchButton.Background.SetColorFilter(filtercolor, PorterDuff.Mode.Multiply);
            };
            #endregion
        }
Example #3
0
 public LoadmoreTask(Context context, SearchRoom searchRoom, LoadMoreWrapper loadMoreWrapper)
 {
     this.context         = context;
     this.searchRoom      = searchRoom;
     this.loadMoreWrapper = loadMoreWrapper;
 }
Example #4
0
        public Condition(Context context, SearchRoom searchRoom, RecyclerView.Adapter roomlist_adapter)
        {
            this.context          = context;
            this.searchRoom       = searchRoom;
            this.roomlist_adapter = roomlist_adapter;
            #region 中二病
            TextView  中二病          = ((Activity)context).FindViewById <TextView>(Resource.Id.中二病Text);
            ImageView 中二病imageView = ((Activity)context).FindViewById <ImageView>(Resource.Id.中二病imageView);
            ImageView LeftMenuHead = ((Activity)context).FindViewById <ImageView>(Resource.Id.imageButton1);
            中二病imageView.Click += 中二病imageView_Click;
            中二病.Click          += 中二病imageView_Click;
            void 中二病imageView_Click(object sender, EventArgs e)
            {
                if (中二病Flag)
                {
                    中二病.Text = "普通模式";
                    中二病Flag  = false;
                    LeftMenuHead.SetImageDrawable(context.GetDrawable(Resource.Drawable.ic_launcher_foreground_HD));
                    SetTime();
                }
                else
                {
                    中二病.Text = "中二病模式";
                    中二病Flag  = true;
                    LeftMenuHead.SetImageDrawable(context.GetDrawable(Resource.Drawable.APPButtonImage));
                    SetTime();
                }
            }

            #endregion
            #region 监听时间改变
            var intentFilter = new IntentFilter();
            intentFilter.AddAction(Intent.ActionTimeTick);//每分钟变化
            TimeChangeReceiver timeChangeReceiver = new TimeChangeReceiver();
            context.RegisterReceiver(timeChangeReceiver, intentFilter);
            timeChangeReceiver.condition = this;
            #endregion
            #region  空教室
            EmptyRoomSwitch        = ((Activity)context).FindViewById <LinearLayout>(Resource.Id.EmptyRoomSwitch);
            EmptyRoomText          = ((Activity)context).FindViewById <TextView>(Resource.Id.EmptyRoomText);
            EmptyRoomSwitch.Click += (sender, args) =>
            {
                if (EmptyRoomFlag)
                {
                    EmptyRoomFlag      = false;
                    EmptyRoomText.Text = "全部教室";
                }
                else
                {
                    EmptyRoomFlag      = true;
                    EmptyRoomText.Text = "空教室";
                }
                searchRoom.ResetShowDatas(this);         //显示数据应用更改
                roomlist_adapter.NotifyDataSetChanged(); //显示数据刷新
            };
            #endregion
            #region 时间
            TimeLockButton = ((Activity)context).FindViewById <Button>(Resource.Id.TimeLockButton);
            WeekText       = ((Activity)context).FindViewById <TextView>(Resource.Id.WeekText);
            TimeText       = ((Activity)context).FindViewById <TextView>(Resource.Id.TimeText);
            SetTimeToNow(); //初始化时间
            SetTime();      //应用更改
            WeekText.Click += (sender, args) =>
            {
                ChangeWeek();
            };//改变周
            TimeText.Click += (sender, args) =>
            {
                ChangeTime();
            };//改变时间
            #endregion
        }