つくって覚えるJava入門 Android対応
つくって覚えるJava入門 Android対応

本屋で見つけた新刊。ペラペラめくってみて楽しそうな本で欲しくなりました。

こういう本がもっと色々出てくるんだろうな。

ただ現在手元にある本も読み切れてないので保留。

読む、というより大体は興味持った所をマネしてプログラミングしています。

細かい所がわかってなくても本や雑誌、ネットにあるコードをマネして動けば楽しい。

ボクはブログを見ての通り、ステップバイステップみたいなやり方をしていません。

「学習」としてはかなり効率悪いかも。

ま、遊んでるからいいんです。おもしろければいいんです。



さて、今回は「ロード中」をプログラミング。

ユーザーに処理の進捗状況を伝えます。

参考文献は「Android Hack」。

少し高くて躊躇してたけど「えいっ!」って買っちゃいました。

ボリュームもあってワクワクします。詳しい説明は本書にまかせるとして。

ではやってみました。

Android Hacks ―プロが教えるテクニック & ツール
Android Hacks ―プロが教えるテクニック

AD1

AD2

AD3

コードは続きから。

//ProgressDialogActivity.java

package com.xun.ProgressDialog;

import android.app.Activity;
import android.app.ProgressDialog;
import android.content.DialogInterface;

import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class ProgressDialogActivity extends Activity {
    private EditText mResultText = null;
    private ProgressDialog mProgressDialog;
    private int mProgress = 0;
    private Handler mProgressHandler = null;
   
     @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button button;
        button = (Button)findViewById(R.id.ButtonAlertDialogOK);
        button.setOnClickListener(new OnClickListener(){
         public void onClick(View v){
          mProgressDialog = new ProgressDialog(ProgressDialogActivity.this);
          mProgressDialog.setTitle("ProgressDialog");
          mProgressDialog.setProgressStyle(mProgressDialog.STYLE_HORIZONTAL);
          mProgressDialog.setMax(100);
          mProgressDialog.setButton("OK",new DialogInterface.OnClickListener() {
      public void onClick(DialogInterface dialog, int whichButton) {
       mResultText.setText("ProgressDialog[OK]press at "+mProgress+"%");
      }
          });
    mProgress = 0;
    mProgressDialog.show();
    mProgressDialog.setProgress(0);
    mProgressHandler.sendEmptyMessage(0);
         }
        });
          mResultText = (EditText)findViewById(R.id.textResult);
          mProgressHandler = new Handler(){
          @Override
          public void handleMessage(Message msg){
           super.handleMessage(msg);
           if(mProgress >= 100){
            mProgressDialog.dismiss();
            mResultText.setText("ProgressDialog finished"+mProgress+"%");
           }else{
            mProgress++;
            mProgressDialog.incrementProgressBy(1);
            mProgressHandler.sendEmptyMessageDelayed(0,100);
           }
          }
          };
     }
}



//main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<Button android:text="AlertDialog OK"
 android:id="@+id/ButtonAlertDialogOK"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"/>
<EditText android:id="@+id/textResult"
 android:focusable="false"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"/>
</LinearLayout>