Sto provando a lern Monodroid! Provo a riscrivere il codice java in C# e ho qualche problema: non capisco come usare Runnable. Questo è snipet di codice Java, che coudn't traducono in C#:Come usare Runnable in Mono per Android
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);
}
};
...
Mi potete spiegare come devo scrivere questo codice e utilizzare Runnable? Questo Runnable può essere utilizzato per aggiornare l'adattatore gridview e caricare i dati dall'adattatore a gridview in background. Se ho provato ad aggiornare l'adattatore nel thread principale? come questo (codice C#):
mAdapter.next()
mLifeGrid.Adapter = mAdapter;
Thread.Sleep(1000);
attività è bloccato. Se non riesco a utilizzare Runnable, come posso implementare l'aggiornamento di adapter e gridview nel nuovo thread? Se uso C# threading, in questo modo:
...
Thread th = new Thread(new ThreadStart(mUpdatGeneration));
th.Start();
}
public void mUpdateGeneration()
{
mAdapter.next()
mLifeGrid.Adapter = mAdapter;
Thread.Sleep(1000);
}
esso genera un errore "System.NullReferenceException"
Grazie a tutti per qualsiasi aiuto! P.S. Ci scusiamo per il mio inglese :)
Questo è C#, in modo da utilizzare classi C# threading. –
@KirkWoll 'Handler' potrebbe non essere una classe di threading. Sembra essere la classe che puoi usare per postare nella coda degli eventi principale. – millimoose
@millimoose, giusto, ma chi ha implementato 'Handler'? Se questo è un progetto mono, non si dovrebbero usare gli idiomi Java. –