私はAndroid開発の初心者で、テキストボックスに乱数を表示し、トグルボタンが「オン状態。誰かに提案がありますか、または可能であれば部分的なソースコードを共有するのが良いでしょう.
私が必要とするもう1つの提案は、内部の詳細も含めてAndroid開発から始めるための優れた本に関するものです. Android に関する他の開発言語用の本がある場合 (例: Java の完全なリファレンス、C、C++ の完全なリファレンスなど)
前もって感謝します
私はAndroid開発の初心者で、テキストボックスに乱数を表示し、トグルボタンが「オン状態。誰かに提案がありますか、または可能であれば部分的なソースコードを共有するのが良いでしょう.
私が必要とするもう1つの提案は、内部の詳細も含めてAndroid開発から始めるための優れた本に関するものです. Android に関する他の開発言語用の本がある場合 (例: Java の完全なリファレンス、C、C++ の完全なリファレンスなど)
前もって感謝します
私はいくつかの Android の本を読みましたが、 Android in Practiceを強くお勧めします。この本を読んだら、ここ StackOverflow で質問をしているほとんどの人が、この本だけでかなりの恩恵を受けることがわかるでしょう。それは優れた価格価値であり、著者は彼らが何について書いているかを確実に知っていました.
編集:実装について(UPDATED、ブール値を削除)
public final class MyActivity extends Activity implements Runnable {
private Handler uiThreadHandler;
@Override
protected void onCreate(Bundle savedInstanceState) {
// basics
super.onCreate(savedInstanceState);
setContentView(R.layout.your_activity_layout);
// find text widget here, store in editText as also required in Chintan's solution
// get the current activity's handler, it's the UI thread
uiThreadHandler = new Handler();
// initiate the updates if that's the initial state
scheduletUpdate();
// register callbacks for button etc as required also in Chintan's solution
}
@Override
public void run() {
//update your editText field here -- this is run in the UI thread so it's safe!
scheduleUpdate();
}
private void scheduleUpdate() {
uiThreadHandler.postDelayed(this, 1000); // 1000 ms
}
// etc, some stuff missing
}
編集:メソッドの実行のスケジューリングを停止する方法については、次のコードを使用します。これは、ハンドラーのドキュメントrun()
から明らかなはずです(UPDATED、ブール値の削除):
uiThreadHandler.removeCallbacks(this);
Thread
のように使用します。
class MyThread extends Thread
{
private volatile boolean isRunning = false;
public synchronized void requestStop() {
isRunning = true;
}
@Override
public void run() {
//place code here...
try {
while (!isRunning) {
// do your coding
handler.sendMessage(handler.obtainMessage(WhatAbout.CHANGE_TEXT.ordinal(), 0, 0));
Thread.sleep(1000 * 1); //1000 ms = 1 sec
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
次に、複数のメッセージを処理する次のコードを定義します。
public enum WhatAbout {
CHANGE_TEXT
}
public WhatAbout[] wa = WhatAbout.values();
次に、[Handler][1] を使用します。これは、通信BackgroundThread
とUIThread
. ハンドラーを使用しないと、変更できませんUI
。
メソッドに次のコードを挿入しますonCreate
。
handler = new Handler() {
@Override
public void handleMessage(Message msg) {
if (msg.what < wa.length) {
switch (wa[msg.what])
{
case CHANGE_TEXT:
editText.setText(randomVariable);
break;
}
}
};
スイッチをオフに切り替えるときは、次のコードを使用してスレッドを停止します。
if (thread != null) {
thread .requestStop();
thread = null;
}
初心者の方は、http://www.mybringback.com/series/android-basics/このチュートリアルを実行することをお勧めします。そうすれば、自分で求めたことを実行できるようになります。また、わかりやすいビデオチュートリアルもあります。