Staram się wspierać Monodroid! Próbuję ponownie napisać kod java do C# i mam pewien problem: nie rozumiem, jak używać Runnable. To snipet kodu w Javie, że coudn't przetłumaczyć C#:How-to use Runnable in Mono dla Androida
public class RunActivity extends Activity implements OnClickListener
{
...
private Handler mHandler;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.run);
...
mHandler = new Handler();
mHandler.postDelayed(mUpdateGeneration, 1000);
}
private Runnable mUpdateGeneration = new Runnable()
{
public void run()
{
mAdapter.next();
mLifeGrid.setAdapter(mAdapter);
mHandler.postDelayed(mUpdateGeneration, 1000);
}
};
...
Czy możesz wyjaśnić mi jak mam napisać ten kod i użyć Runnable? To narzędzie Runnable umożliwia zaktualizowanie adaptera gridview i ładowanie danych z adaptera do widoku siatki w tle. Czy po wypróbowaniu adaptera aktualizacji w głównym wątku? w ten sposób (kod C#):
mAdapter.next()
mLifeGrid.Adapter = mAdapter;
Thread.Sleep(1000);
Aktywność utknęła. Jeśli nie mogę użyć opcji Runable, jak mogę zaimplementować aktualizację adaptera i gridview w nowym wątku? Jeśli używam C# wątków, na przykład:
...
Thread th = new Thread(new ThreadStart(mUpdatGeneration));
th.Start();
}
public void mUpdateGeneration()
{
mAdapter.next()
mLifeGrid.Adapter = mAdapter;
Thread.Sleep(1000);
}
to generuje błąd "System.NullReferenceException"
Dzięki wszystkim za pomoc! P.S. Przepraszam za mój angielski :)
To jest C#, więc należy używać klas C# gwintowania. –
@KirkWoll 'Handler' może nie być klasą wątków. Wydaje się, że jest to klasa, której możesz użyć do publikowania w głównej kolejce zdarzeń. – millimoose
@montimoose, prawda, ale kto wdrożył 'Handler'? Jeśli jest to projekt mono, nie powinno się używać idiomów Java. –