0

私はAndroidが初めてです。2 つのアクティビティがあり、次のように実行される単純なアプリがあります。

アクティビティ 1:

public void SendMessage(View view){
    Intent intent=new Intent(this,DisplayMessage.class);
    EditText editText=(EditText) findViewById(R.id.edit_message);
    String message=editText.getText().toString();
    intent.putExtra(EXTRA_MESSAGE, message);
    startActivity(intent);
}

アクティビティ 2:

「Extra_Message」は 1 回表示され、TextView1 ずつ増加し、10 回繰り返されます。加算の各結果は、TextView1000ms の遅延で に表示されます。

Intent intent= getIntent();
String message=intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
int no= Integer.parseInt(message);
TextView textView=new TextView(this);
textView.setTextSize(40);
for(int i=0;i<10;i++)
{
    message=Integer.toString(no);
    textView.setText(message);
    setContentView(textView);
    no++;

    try {
        Thread.sleep(1000);
    } catch(InterruptedException e) {
    }
}

問題は、このコードをどこで実行すればよいかわからないことです。2 番目のアクティビティの作成後に実行する必要があります。

4

3 に答える 3

1

2 番目のアクティビティの onCreate() メソッドで実行するだけです。

于 2013-03-29T23:18:20.840 に答える
1

メイン (または UI) スレッドで Thread.sleep() を呼び出すことはお勧めできません。実際、メインスレッドを停止するものは何でも悪い考えです。1 つの解決策: 2 番目のアクティビティでハンドラーを作成し、遅延した Runnable をポストします。handler.postDelayed(Runnable r, long delayMillis)Handler に関連付けられたスレッド (この場合はメインスレッド) でランナブルをスケジュールするために使用します。

private Handler handler;
private TextView textView;
private Runnable updateTextRunnable = new Runnable() {
    public void run() {
        String message = ...
        textView.setText(message);
        handler.postDelayed(this, 1000);
    }
};

public void onCreate(Bundle saved) {
    super.onCreate(saved);
    setContentView(R.layout.your_layout);

    textView = (TextView) findViewById(R.id.your_text_view_id);
    handler = new Handler();
}

public void onResume() {
    super.onResume();
    handler.postDelayed(updateTextRunnable, 1000);
}

呼び出すことで停止できhandler.removeCallbacks(updateTextRunnable);ます -- どこで実行を停止するかは、あなたにお任せします。

于 2013-03-30T00:11:18.167 に答える
0

スレッド クラスのオブジェクトを作成し、その中にバックルのコードを入れることができます。

次に、「for」反復ごとに呼び出します

thread.sleep(500);

このようにして、システムは0.5 sec各反復で待機します

于 2013-03-30T00:14:08.380 に答える