按工具栏中的按钮更新Recycler视图

时间:2016-11-30 10:22:52

标签: c# android xamarin xamarin.android android-recyclerview

我使用Xamarin为Android编写应用程序。

我在Activity for OnCreate方法中有这段代码。

    protected override int LayoutResource
    {
        get { return Resource.Layout.Main; }
    }

    private RecyclerView recyclerView;
    private ProgressBar activityIndicator;
    private RecyclerView.LayoutManager layoutManager;

    protected override async void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);


        recyclerView = FindViewById<RecyclerView>(Resource.Id.recyclerView);
        activityIndicator = FindViewById<ProgressBar>(Resource.Id.activityIndicator);

        activityIndicator.Visibility = Android.Views.ViewStates.Visible;

        layoutManager = new LinearLayoutManager(this, LinearLayoutManager.Vertical, false);

        recyclerView.SetLayoutManager(layoutManager);

        var repository = new TestAppRepository();

        var films = await repository.GetAllFilms();

        var formsAdapter = new FormAdapter(films.results);

        recyclerView.SetAdapter(formsAdapter);

        activityIndicator.Visibility = Android.Views.ViewStates.Gone;

        SupportActionBar.SetDisplayHomeAsUpEnabled(false);
        SupportActionBar.SetHomeButtonEnabled(false);

我在工具栏中有按钮,点击此按钮时需要刷新Recycler。

这是调用它来显示

 public override  bool OnCreateOptionsMenu(IMenu menu)
    {
        MenuInflater.Inflate(Resource.Menu.home, menu);
        return base.OnCreateOptionsMenu(menu);

    }

我如何编写代码来刷新Recycler?

感谢帮助

1 个答案:

答案 0 :(得分:0)

使用按钮的setOnClickListener方法,并在名为RecyclerView适配器的onClick方法中实现new OnClickListener onClick方法notifydatasetchanged() class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate, UITextFieldDelegate { var disp:[String] = [] var arrValues:[String] = ["Delhi", "Noida", "Gurugram", "Bangluru", "Nasik", "Mumbai", "Kolkata"] @IBOutlet weak var text1: UITextField! @IBOutlet weak var textView: UITextView! @IBOutlet weak var display: UILabel! @IBOutlet weak var tableView: UITableView! @IBAction func show(_ sender: Any) { var txt = text1.text let fValue = txt?.index(after: (txt?.characters.index(of: "@"))!) let prnt = txt?[fValue!] let chnge = String(prnt!) display.text = chnge } override func viewDidLoad() { super.viewDidLoad() tableView.isHidden = true if text1.isEnabled { if ((otherString?.range(of: "@")) != nil) { tableView.isHidden = false } } //else{ tableView.isHidden = false} let anotherArr = Array(fetch!.characters) for chartr in anotherArr { if chartr == "@"{ tableView.isHidden = false } } self.tableView.register(UITableViewCell.self, forCellReuseIdentifier: "cell") } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return self.arrValues.count } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell:UITableViewCell = self.tableView.dequeueReusableCell(withIdentifier: "Cell")! as UITableViewCell cell.textLabel?.text = self.arrValues[indexPath.row] return cell } func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { } } <Route name="Products" path="Products/:categoryParam(?:helperParams)" component={ProductListing} /> 1}}