-4

私はAndroid開発の初心者で、テキストボックスに乱数を表示し、トグルボタンが「オン状態。誰かに提案がありますか、または可能であれば部分的なソースコードを共有するのが良いでしょう.

私が必要とするもう1つの提案は、内部の詳細も含めてAndroid開発から始めるための優れた本に関するものです. Android に関する他の開発言語用の本がある場合 (例: Java の完全なリファレンス、C、C++ の完全なリファレンスなど)

前もって感謝します

4

3 に答える 3

1

私はいくつかの 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);
于 2013-01-22T09:35:32.630 に答える
0

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] を使用します。これは、通信BackgroundThreadUIThread. ハンドラーを使用しないと、変更できません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;
}
于 2013-01-22T09:46:57.720 に答える
0

初心者の方は、http://www.mybringback.com/series/android-basics/このチュートリアルを実行することをお勧めします。そうすれば、自分で求めたことを実行できるようになります。また、わかりやすいビデオチュートリアルもあります。

于 2013-01-22T09:40:13.233 に答える