2016-10-07 8 views
-2

мой proplem: Я есть функция LoadTaskList() на MainActivity, но в CustomAdapter я назвал LoadTaskList(), но не активныеВызов функции из другого класса

CustomAdapter.cs

 public override View GetView(int position, View convertView, ViewGroup parent) 
     { 
      LayoutInflater inflater = (LayoutInflater)mainActivity.GetSystemService(Context.LayoutInflaterService); 
      View view = inflater.Inflate(Resource.Layout.row, null); 

      TextView txtTask = view.FindViewById<TextView>(Resource.Id.task_title); 
      Button btnDelete = view.FindViewById<Button>(Resource.Id.btnDelete); 


      txtTask.Text = taskList[position]; 

      btnDelete.Click += delegate { 
       string task = taskList[position]; 
       dbHelper.deleteTask(task); 

       mainActivity.LoadTaskList(); // here 
      }; 
      return view; 
     } 

MainActivity.cs

public void LoadTaskList() 
    { 
     List<string> taskList = dbHelper.getTaskList(); 
     if (mAdapter == null) 
     { 
      mAdapter = new CustomAdapter(this, taskList,dbHelper); 
      lstTask.Adapter = mAdapter; 
     } 

    } 
+1

Что вы имеете в виду _ «но он не активен»? _ Вы получаете сообщение об ошибке? –

+0

Эта функция для перезагрузки ListView, но в моем случае она не перезагружает ListView, когда вы вызываете ее на CustomAdapter. – EddyLee

+0

является 'mAdapter == null', когда вы вызываете его второй раз? duh – mihail

ответ

0

Решенный!

Просто измените LoadTaskList() к общественности и вызывать его из CustomAdapter

+0

Не уверен, почему это сработало, поскольку 'LoadTaskList()' уже был помечен как 'public' в ваш вопрос. –

Смежные вопросы