Вы не можете напрямую создавать экземпляры Activity или напрямую ссылаться на методы Activity, если ваш ссылочный класс не был создан целевым Activity.
В вашем случае вы не можете сделать это:
private MainGame mainGame = new MainGame();
Однако вы создаете экземпляр ScoreSetter из своей деятельности в MainGame, что означает, что у вас есть нужная ссылка. Вместо использования Context
в конструкторе ScoreSetter, используйте MainGame
:
private MainGame mainGame; //don't instantiate it here
public ScoreSetter(MainGame mainGame) {
this.mainGame = mainGame; //do it here instead
}
Теперь вы можете ссылаться на фактический экземпляр вашей активности.
Если вы когда-либо сталкивались со случаем, когда ваш класс не содержит в Деятельности, которую необходимо обновить, вам следует обратиться к трансляциям .
Можно сделать это без рисования владельца список:
// create a new list item with a subitem that has white text on a blue background
ListViewItem lvi = new ListViewItem( "item text" );
lvi.UseItemStyleForSubItems = false;
lvi.SubItems.Add( new ListViewItem.ListViewSubItem( lvi,
"subitem", Color.White, Color.Blue, lvi.Font ) );
Цветные аргументы конструктору ListViewSubItem управляют основным цветом и цветом фона подэлемента. Критическая вещь сделать здесь установлена UseItemStyleForSubItems
ко Лжи на элементе списка иначе будут проигнорированы Ваши цветные изменения.
Я думаю, что Ваше решение ничьей владелец работало бы также, но необходимо не забыть изменять текст (приоритетный) цвет при изменении предпосылок к синему иначе текст будет трудно видеть.
Понятый это. Вот код для переключения выделения определенного подэлемента.
listView1.Items[1].UseItemStyleForSubItems = false;
if (listView1.Items[1].SubItems[10].BackColor == Color.DarkBlue)
{
listView1.Items[1].SubItems[10].BackColor = Color.White;
listView1.Items[1].SubItems[10].ForeColor = Color.Black;
}
else
{
listView1.Items[1].SubItems[10].BackColor = Color.DarkBlue;
listView1.Items[1].SubItems[10].ForeColor = Color.White;
}