シンプルな Android アプリを適切に動作させるのに苦労しています。私は C から来た Java の経験がほとんどなく、毎秒表示を更新する単純な時計アプリから小さく始めようとしています。ここに私のJavaコードがあります:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String currentdatetime =
DateFormat.getDateTimeInstance().format(new Date());
final TextView textview = new TextView(this);
Handler handler = new Handler();
Runnable runnable = new Runnable() {
@Override
public void run() {
String currentdatetime =
DateFormat.getDateTimeInstance().format(new Date());
textview.setText(currentdatetime);
}
};
textview.setGravity(Gravity.CENTER);
textview.setTextSize(20);
textview.setText(currentdatetime);
setContentView(textview);
handler.postDelayed(runnable, 1000);
runnable.run();
}
私はこれを Google 提供の ADT バンドルを使用して Debian Linux で実行しており、これらの問題を修正するために Eclipse が提供するすべての提案に従いましたが、役に立ちませんでした。プログラムは正常にコンパイルされ、期待どおりに表示されますが、まったく更新されません。私はできる限り Google を精査し、さまざまな方法でこれを行ってきましたが、うまくいきませんでした。
このプログラムに期待することは、作成時に「currentdatetime」を現在の日付と時刻に設定し、それを TextView に貼り付けてから、TextView をメイン ビューに変更することです。handler.postDelayed
その後、1000ミリ秒ごとにヒットしてこれを繰り返すと思います。しかし、明らかに、それが起こっているわけではありません。
私は完全に失われているのではないかと心配しています。誰かが私を正しい方向に向けることができますか?