2014年11月27日木曜日

timer表示

package com.example.timer;

import java.math.BigDecimal;
import java.util.Timer;
import java.util.TimerTask;

import android.app.Activity;
import android.app.ActionBar;
import android.app.Fragment;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import android.os.Build;

public class MainActivity extends Activity implements OnClickListener {
    TextView mTextView;
    Button mStartBtn, mStopBtn;
    float mLaptime = 0.0f;
    MyTimerTask timerTask = null;
    Timer mTimer = null;
    Handler mHandler = new Handler();
    Button callintentbutton;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // IDの取得
        mTextView = (TextView) findViewById(R.id.LapTime);
        mStartBtn = (Button) findViewById(R.id.StartBtn);
        mStopBtn = (Button) findViewById(R.id.StopBtn);
        callintentbutton = (Button) findViewById(R.id.callintentbutton);

        mStartBtn.setOnClickListener(this);
        mStopBtn.setOnClickListener(this);
        mStopBtn.setOnClickListener(this);
        callintentbutton.setOnClickListener(this);

        if (savedInstanceState == null) {
            getFragmentManager().beginTransaction()
                    .add(R.id.container, new PlaceholderFragment()).commit();
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

    /**
     * A placeholder fragment containing a simple view.
     */
    public static class PlaceholderFragment extends Fragment {

        public PlaceholderFragment() {
        }

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            View rootView = inflater.inflate(R.layout.fragment_main, container,
                    false);
            return rootView;
        }
    }

    @Override
    public void onClick(View v) {
        Button btn = (Button) v;

        switch (btn.getId()) {

        // スタートボタンが押されたとき
        case R.id.StartBtn:

            if (mTimer == null) {

                // タイマーの初期化処理
                timerTask = new MyTimerTask();
                mLaptime = 0.0f;
                mTimer = new Timer(true);
                mTimer.schedule(timerTask, 100, 100);
            }
            break;

        // ストップボタンが押されたとき
        case R.id.StopBtn:
            if (mTimer != null) {
                mTimer.cancel();
                mTimer = null;
            }
            break;

        // ストップボタンが押されたとき
        case R.id.callintentbutton:
            Intent intent = new Intent();
            intent.setClassName("com.example.timer",
                    "com.example.timer.SubActivity");
            startActivity(intent);
            break;
        default:
            break;

        }

    }
    @Override
    protected void onRestart() {
        // TODO Auto-generated method stub
        super.onRestart();
         Toast.makeText( getApplicationContext(), Integer.toString(444), Toast.LENGTH_SHORT ).show();

    }
   
    @Override
    protected void onPause() {
        // TODO Auto-generated method stub
        super.onPause();
        mTimer.cancel();
    }



    @Override
    protected void onStop() {
        // TODO Auto-generated method stub
        super.onStop();
    }

    @Override 
    protected void onSaveInstanceState(Bundle outState) { 
      super.onSaveInstanceState(outState); 
      //outState.putInt("ageKey", Integer.parseInt(mTextView.getText().toString())); 
      outState.putInt("ageKey", 111); 
      Toast.makeText( getApplicationContext(), Integer.toString(222), Toast.LENGTH_SHORT ).show();

    } 
     
    @Override 
    protected void onRestoreInstanceState(Bundle savedInstanceState) { 
      super.onRestoreInstanceState(savedInstanceState); 
      int name = savedInstanceState.getInt("ageKey");
      //Log.d("abcdefg",Integer.toString(name));
      //mTextView.setText(Integer.toString(name));
      Toast.makeText( getApplicationContext(), Integer.toString(333), Toast.LENGTH_SHORT ).show();
    } 
   
    class MyTimerTask extends TimerTask {

        @Override
        public void run() {
            // mHandlerを通じてUI Threadへ処理をキューイング
            mHandler.post(new Runnable() {
                public void run() {

                    // 実行間隔分を加算処理
                    mLaptime += 0.1d;

                    // 計算にゆらぎがあるので小数点第1位で丸める
                    BigDecimal bi = new BigDecimal(mLaptime);
                    float outputValue = bi
                            .setScale(1, BigDecimal.ROUND_HALF_UP).floatValue();

                    // 現在のLapTime
                    mTextView.setText(Float.toString(outputValue));
                }
            });
        }
    }
}

2014年11月25日火曜日

actvi

package com.example.dialogfragment;

import android.app.Activity;
import android.app.FragmentManager;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

//memo
//activyからdialogfragmentをよぶ方法。リスナーで

public class MainActivity extends Activity implements OnClickListener, DialogListener{
    Button button;
    FragmentManager manager;
    //android.support.v4.app.FragmentManager manager;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        manager = getFragmentManager(); 
        button = (Button) findViewById(R.id.button1);
        button.setOnClickListener(this);       
/*        Fragment01 frag = new Fragment01();
        FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
        ft.add(R.id.main, frag, "Fragment01");
        ft.commit();*/
    }
   
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.button1:
                // 以前ゴチャゴチャやってたけどもっとシンプルに書けました。考慮不足で申し訳ありません!
                CommonDialogFragment newFragment = CommonDialogFragment.newInstance(
                        "title", "this is message");
                //CommonDialogFragment newFragment =new CommonDialogFragment();
                newFragment.setDialogListener(this);
                String[] Iteams={"test1","test2","test3","test4","test5"};
                newFragment.setIteams(Iteams);
                newFragment.show(manager, "CommonDialogFragment");

                break;

            default:
                break;
        }
    }
   


    @Override
    public void onPositiveClick() {
        Toast.makeText(this, "ok ボタンが押された", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onNegativeClick() {
        Toast.makeText(this, "cancel ボタンが押された", Toast.LENGTH_SHORT).show();
    }
}
com.java
package com.example.dialogfragment;

import android.app.AlertDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.content.DialogInterface;
import android.os.Bundle;
//import android.support.v4.app.DialogFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class CommonDialogFragment extends DialogFragment implements OnClickListener,comDialogListener{
    private DialogListener listener = null;
private Button findbutton ;
private TextView textView1 ;
private String[] Iteams;

    public static CommonDialogFragment newInstance(String title, String message) {
        CommonDialogFragment frag = new CommonDialogFragment();
        Bundle bundle = new Bundle();
        bundle.putString("title", title);
        bundle.putString("message", message);
        frag.setArguments(bundle);
        return frag;
    }


    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
      
       
        String title = getArguments().getString("title");
        String message = getArguments().getString("message");
        LayoutInflater inflater = LayoutInflater.from(getActivity());
        View createdialog = inflater.inflate(R.layout.createdialog, null);
        findbutton = (Button)createdialog.findViewById(R.id.findbutton);
        findbutton.setOnClickListener(this);
        textView1 = (TextView)createdialog.findViewById(R.id.textView1);

       
        return new AlertDialog.Builder(getActivity())
                .setIcon(R.drawable.ic_launcher)
                .setTitle(title)
                .setMessage(message)
                .setView(createdialog)
                .setPositiveButton(android.R.string.ok,
                        new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int whichButton) {
                                listener.onPositiveClick();
                                dismiss();
                            }
                        }
                )
                .setNegativeButton(android.R.string.cancel,
                        new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int whichButton) {
                                listener.onNegativeClick();
                                dismiss();
                            }
                        }
                )
                .create();
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    /**
     * リスナーを追加する
     *
     * @param listener
     */
    public void setDialogListener(DialogListener listener) {
        this.listener = listener;
    }

    /**
     * リスナーを削除する
     */
    public void removeDialogListener() {
        this.listener = null;
    }
    public void setIteams(String[] Iteams) {
        this.Iteams = Iteams;
    }
    @Override
    public void onClick(View arg0) {
        SelectDialogFragment newFragment = SelectDialogFragment.newInstance(
                "title", "this is message");
        newFragment.setDialogListener(this);
        newFragment.show(getActivity().getFragmentManager(), "CommonDialogFragment");

       
    }

    @Override
    public void onSetIteam(int whichButton) {
       
        //   Toast.makeText( getActivity(), Integer.toString(whichButton), Toast.LENGTH_SHORT ).show();
        textView1.setText((Iteams[whichButton]));
       
    }
}

sel.java
package com.example.dialogfragment;

import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
//import android.support.v4.app.DialogFragment;
import android.app.DialogFragment;

public class SelectDialogFragment extends DialogFragment implements DialogInterface.OnClickListener{
       private comDialogListener listener = null;

        public static SelectDialogFragment newInstance(String title, String message) {
            SelectDialogFragment frag = new SelectDialogFragment();
            Bundle bundle = new Bundle();
            bundle.putString("title", title);
            bundle.putString("message", message);
            frag.setArguments(bundle);
            return frag;
        }

        @Override
        public Dialog onCreateDialog(Bundle savedInstanceState) {

            String title = getArguments().getString("title");
            String message = getArguments().getString("message");
            final CharSequence[] items = {"item1", "item2", "item3"};
            return new AlertDialog.Builder(getActivity())
                    //.setIcon(R.drawable.ic_launcher)
                    //.setTitle(title)
                    //.setMessage(message)
/*                    .setPositiveButton(android.R.string.ok,
                            new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int whichButton) {
                                    listener.onSelectClick();
                                    dismiss();
                                }
                            }
                    )*/
/*                    .setNegativeButton(android.R.string.cancel,
                            new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int whichButton) {
                                    //listener.onNegativeClick();
                                    dismiss();
                                }
                            }
                    )*/
/*                    .setItems(
                            items,
                            new DialogInterface.OnClickListener() {
                                public void onClick(DialogInterface dialog, int which) {
                                    // リスト選択時の処理
                                    // which は、選択されたアイテムのインデックス
                                }
                            })*/
                    .setItems(items,this)
                    .create();
        }

        /**
         * リスナーを追加する
         *
         * @param listener
         */
        public void setDialogListener(comDialogListener listener) {
            this.listener = listener;
        }

        /**
         * リスナーを削除する
         */
        public void removeDialogListener() {
            this.listener = null;
        }

        @Override
        public void onClick(DialogInterface dialog, int whichButton) {
            listener.onSetIteam(whichButton);
           
        }
}

diag.interface
package com.example.dialogfragment;

import java.util.EventListener;

public interface DialogListener extends EventListener {

    /**
     * okボタンが押されたイベントを通知する
     */
    public void onPositiveClick();

    /**
     * cancelボタンが押されたイベントを通知する
     */
    public void onNegativeClick();
}

cominterface
package com.example.dialogfragment;

public interface comDialogListener {
    /**
     * okボタンが押されたイベントを通知する
     */
    public void onSetIteam(int whichButton);

}


gettargetfrag

Activity
package com.example.dialogfragment;

import android.app.Activity;
import android.app.FragmentManager;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

//memo
//activyからdialogfragmentをよぶ方法。リスナーで

public class MainActivity extends Activity implements OnClickListener{
    Button button;
    FragmentManager manager;
    //android.support.v4.app.FragmentManager manager;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        manager = getFragmentManager(); 
        button = (Button) findViewById(R.id.button1);
        button.setOnClickListener(this);       
/*        Fragment01 frag = new Fragment01();
        FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
        ft.add(R.id.main, frag, "Fragment01");
        ft.commit();*/
    }
   
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.button1:
                // 以前ゴチャゴチャやってたけどもっとシンプルに書けました。考慮不足で申し訳ありません!
                CommonDialogFragment newFragment = CommonDialogFragment.newInstance(
                        "title", "this is message");
                //CommonDialogFragment newFragment =new CommonDialogFragment();
                //newFragment.setDialogListener(this);
               
                String[] Iteams={"test1","test2","test3","test4","test5"};
                newFragment.setIteams(Iteams);
                newFragment.show(manager, "CommonDialogFragment");

                break;

            default:
                break;
        }
    }
   


    public void onPositiveClick() {
        //Toast.makeText(this, "ok ボタンが押された", Toast.LENGTH_SHORT).show();
    }


    public void onNegativeClick() {
        //Toast.makeText(this, "cancel ボタンが押された", Toast.LENGTH_SHORT).show();
    }
}

com.java
package com.example.dialogfragment;

import android.app.AlertDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.content.DialogInterface;
import android.os.Bundle;
//import android.support.v4.app.DialogFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class CommonDialogFragment extends DialogFragment implements OnClickListener{
private Button findbutton ;
private TextView textView1 ;
private String[] Iteams;
private MainActivity activity = (MainActivity) getActivity();

    public static CommonDialogFragment newInstance(String title, String message) {
        CommonDialogFragment frag = new CommonDialogFragment();
        Bundle bundle = new Bundle();
        bundle.putString("title", title);
        bundle.putString("message", message);
        frag.setArguments(bundle);

        return frag;
    }

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
       
        String title = getArguments().getString("title");
        String message = getArguments().getString("message");
        LayoutInflater inflater = LayoutInflater.from(getActivity());
        View createdialog = inflater.inflate(R.layout.createdialog, null);
        findbutton = (Button)createdialog.findViewById(R.id.findbutton);
        findbutton.setOnClickListener(this);
        textView1 = (TextView)createdialog.findViewById(R.id.textView1);

       
        return new AlertDialog.Builder(getActivity())
                .setIcon(R.drawable.ic_launcher)
                .setTitle(title)
                .setMessage(message)
                .setView(createdialog)
                .setPositiveButton(android.R.string.ok,
                        new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int whichButton) {
                                activity.onPositiveClick();
                                dismiss();
                            }
                        }
                )
                .setNegativeButton(android.R.string.cancel,
                        new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int whichButton) {
                                activity.onNegativeClick();
                                dismiss();
                            }
                        }
                )
                .create();
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    /**
     * リスナーを追加する
     *
     * @param listener
     */
/*    public void setDialogListener(DialogListener listener) {
        this.listener = listener;
    }

    *//**
     * リスナーを削除する
     *//*
    public void removeDialogListener() {
        this.listener = null;
    }
    */
    public void setIteams(String[] Iteams) {
        this.Iteams = Iteams;
    }
    @Override
    public void onClick(View arg0) {
        SelectDialogFragment newFragment = SelectDialogFragment.newInstance(
                "title", "this is message");
        newFragment.setTargetFragment(this, 0);
        //newFragment.setDialogListener(this);
        newFragment.show(getActivity().getFragmentManager(), "CommonDialogFragment");

       
    }

    public void onSetIteam(int whichButton) {
       
        //   Toast.makeText( getActivity(), Integer.toString(whichButton), Toast.LENGTH_SHORT ).show();
        textView1.setText((Iteams[whichButton]));
       
    }
}

sel.java
package com.example.dialogfragment;

import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
//import android.support.v4.app.DialogFragment;
import android.app.DialogFragment;

public class SelectDialogFragment extends DialogFragment implements DialogInterface.OnClickListener{
       //private comDialogListener listener = null;
    private MainActivity activity = (MainActivity) getActivity();
   
        public static SelectDialogFragment newInstance(String title, String message) {
            SelectDialogFragment frag = new SelectDialogFragment();
            Bundle bundle = new Bundle();
            bundle.putString("title", title);
            bundle.putString("message", message);
            frag.setArguments(bundle);
            return frag;
        }

        @Override
        public Dialog onCreateDialog(Bundle savedInstanceState) {

            String title = getArguments().getString("title");
            String message = getArguments().getString("message");
            final CharSequence[] items = {"item1", "item2", "item3"};
            return new AlertDialog.Builder(getActivity())
                    //.setIcon(R.drawable.ic_launcher)
                    //.setTitle(title)
                    //.setMessage(message)
/*                    .setPositiveButton(android.R.string.ok,
                            new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int whichButton) {
                                    listener.onSelectClick();
                                    dismiss();
                                }
                            }
                    )*/
/*                    .setNegativeButton(android.R.string.cancel,
                            new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int whichButton) {
                                    //listener.onNegativeClick();
                                    dismiss();
                                }
                            }
                    )*/
/*                    .setItems(
                            items,
                            new DialogInterface.OnClickListener() {
                                public void onClick(DialogInterface dialog, int which) {
                                    // リスト選択時の処理
                                    // which は、選択されたアイテムのインデックス
                                }
                            })*/
                    .setItems(items,this)
                    .create();
        }

        /**
         * リスナーを追加する
         *
         * @param listener
         */
/*        public void setDialogListener(comDialogListener listener) {
            this.listener = listener;
        }

        *//**
         * リスナーを削除する
         *//*
        public void removeDialogListener() {
            this.listener = null;
        }*/

        @Override
        public void onClick(DialogInterface dialog, int whichButton) {
            CommonDialogFragment cdf = (CommonDialogFragment)getTargetFragment();
            cdf.onSetIteam(whichButton);
           
        }
}

2014年11月12日水曜日

android

*****************************************
      導入方法
****************************************
android memo
http://www39.atwiki.jp/fujiyan/m/pages/38.html

android 既存のサンプルを開く
http://android.akjava.com/cms/develop/sdk/eclipse_newproject.html

開発環境のインストール
http://itpro.nikkeibp.co.jp/article/COLUMN/20130507/474963/
*****************************************
      レファレンス
****************************************
○逆引きandroid
http://www.adakoda.com/android/

Androidの館
http://www.saturn.dti.ne.jp/npaka/android/

ん・ぱか工房 Androidメモ
http://www.saturn.dti.ne.jp/npaka/android/

 ソフトウェア技術ドキュメントを勝手に翻訳
http://www.techdoctranslator.com/android

TechBooster
http://techbooster.jpn.org/category/andriod/tableofcontents/

java 職業訓練 サイト
https://sites.google.com/site/snk2013java/

ど素人のAndroidアプリ開発入門
http://androidhacker.blog94.fc2.com/blog-entry-7.html

Android入門
http://www.javadrive.jp/android/

 世界を目指せ!Androidアプリ開発入門
http://gihyo.jp/dev/serial/01/androidapp
*****************************************
      インテント
****************************************
Intentで画面遷移する(暗黙的Intent)
http://techbooster.jpn.org/andriod/application/8835/

*****************************************
      詳細
****************************************
 コンテンツを非同期でサーバー送信する
techbooster.org/android/hacks/7902/
迷わないためのAndroid端末の位置情報・GPS設定術
http://www.atmarkit.co.jp/ait/articles/1310/23/news120.html
位置情報を取得するには/GPSを使用するには
http://www.adakoda.com/android/000125.html
AndroidでGPSセンサを利用する方法
http://techbooster.jpn.org/andriod/device/227/

 BroadcastReceiver【Android Tips】
http://www.sakc.jp/blog/archives/24996
actionbar
http://www.atmarkit.co.jp/ait/articles/1304/11/news020_2.html
その他のライフサイクルメソッド
http://dev.classmethod.jp/smartphone/android/android-tips-21-activity-lifecycle/
Log.v
http://www.javadrive.jp/android/activity/index7.html

onNewIntent()
http://into.cocolog-nifty.com/pulog/2011/12/android048onnew.html
 android:launchMode="singleTask" を付与すると,ステータスバーの通知をタップした際に onPause → onResume と状態が遷移する。即ち,onCreate へ遷移しない。
http://yoshihikomuto.hatenablog.jp/entry/20111124/1322106813
LaunchMode = SingleTaskでIntentからデータを取得する方法
http://devandroid.blog.fc2.com/blog-entry-4.html

Android開発でのパフォーマンスTips(1)
http://labs.techfirm.co.jp/android/cho/1283

Intent について
http://www.limy.org/program/android/intent.html
変数名からリソースIDを取得する
http://t-kashima.hateblo.jp/entry/20110203/1296748262
CharSequence
http://androidhacker.blog94.fc2.com/blog-entry-45.html
スマホアプリに必須なデータ永続化のためのDBテスト
http://www.atmarkit.co.jp/ait/articles/1202/24/news144.html
フラグメント
http://android.keicode.com/basics/fragments.php
http://www.techdoctranslator.com/android/guide/activities/fragments
Fragmentを動的に変化させる
http://techbooster.jpn.org/andriod/application/3483/


ListFragmentについて
http://furudate.hatenablog.com/entry/2013/06/18/135030

地図アプリ入門(1) ~ まずは地図を表示する
http://android-go.seesaa.net/article/122971440.html
Android(アンドロイド) Android用ソフトウェア
http://www.taosoftware.co.jp/android/

Android Fragment で setArguments() してるサンプルが多いのはなぜ?
http://y-anz-m.blogspot.jp/2012/04/androidfragment-setarguments.html
リストビュー(ListView)を使う/
ListViewクラスのonItemClickメソッド
ListViewクラスのonItemSelectedメソッド
http://techbooster.jpn.org/andriod/ui/9039/


ジェネリックスクラス
http://java.keicode.com/lang/generics-why-generics.php

メニューの追加
http://techbooster.jpn.org/andriod/ui/3383/
メニューボタンのヴァージョン依存
http://d.hatena.ne.jp/MonteCut/20120314/1331705765
フォーカスを制御する
http://wiki.livedoor.jp/moonlight_aska/d/%A5%D5%A5%A9%A1%BC%A5%AB%A5%B9%A4%F2%C0%A9%B8%E6%A4%B9%A4%EB

OptionMenu
http://techbooster.jpn.org/andriod/application/246/
アプリのメニューを作成する。
http://andante.in/i/%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%8D%E3%83%B3%E3%83%88/%E3%82%A2%E3%83%97%E3%83%AA%E3%81%AE%E3%83%A1%E3%83%8B%E3%83%A5%E3%83%BC%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B%E3%80%82/

nAndroidエミュレータのショートカットキー一覧
http://android.roof-balcony.com/debug/shortcutkey/
++++グラフィクス+++++
animation AndroidのTranslateAnimationのクセ
http://kinsentansa.blogspot.jp/2012/04/androidtranslateanimation.html

Androidアプリで“アニメーション”するための基礎知識
http://www.atmarkit.co.jp/ait/articles/1009/15/news120.html

android.graphics.Canvas
android.graphics.Matrix
android.animation

animation
android.view.animation
http://www.atmarkit.co.jp/ait/articles/1009/15/news120.html

android canvas rotate , matrix rotate
http://kuwalab.hatenablog.jp/entry/20110404/p1
http://ichitcltk.hustle.ne.jp/gudon/modules/pico_rd/index.php?content_id=83


○描画用スレッドを実装できる SurfaceView の利用方法
http://android.keicode.com/basics/surfaceview-1.php

○SurfaceViewで画像を表示する
http://boco.hp3200.com/game-devs/surfaceview/3.html

++++Activity+++++
nAndroidで、起動させるActivityに値を渡す方法
http://android.roof-balcony.com/intent/putextra/

intent
Intentは、複数のアプリケーションやActivityを繋ぐ、架け橋のようなものです
http://techbooster.org/android/application/8346/
http://android.roof-balcony.com/intent/putextra/
getStringArray()
http://mmj.99ing.net/java/getstringarray--
resource class
http://www.javadrive.jp/android/xml_layout/index5.html

@+id
http://piyopiyocs.blog115.fc2.com/blog-entry-118.html

r.id(R.java)
http://piyopiyocs.blog115.fc2.com/blog-entry-118.html

Rについて
setContentView(R.layout.main_layout); }. Rはresフォルダ以下にあるものという意味。

findviewid
http://wakaranai.web.fc2.com/c07-findViewById.html

view class
http://www.javadrive.jp/android/activity/index4.html

ViewとSurfaceViewとOpenGL(GLSurfaceView)を比較
http://d.hatena.ne.jp/chiakisugimoto/20100327/1269665047
アクティビティのライフサイクル
http://www.javadrive.jp/android/activity/index2.html
ビュー毎に個別のIDを設定
http://www.javadrive.jp/android/xml_layout/index6.html
レイアウトをプログラムから操作  R.id.X
http://ascii.jp/elem/000/000/539/539591/index-4.html

event listener
http://www.crystal-creation.com/software/technical-information/programming/java/event/listener.htm
CALL_PHONEパーミッションなしで電話をかける方法
http://www.taosoftware.co.jp/blog/2012/12/call_phone.html
AlertDialog.BuilderとLayoutInflaterによりダイアログにレイアウトを流し込む
http://d.hatena.ne.jp/Kazzz/20100426/p1
 DialogFragment のイベントを Activity とか Fragment に伝えたい。
http://slumbers99.blogspot.jp/2013/11/dialogfragment-activity-fragment.html
DialogFragmentのコールバックは難しい
http://qiita.com/nein37/items/75fcec3ab07f00f6936a
Android初心者におすすめする「Fragmentによるシンプルで効率的なUI実装」#Android #yahoo
https://codeiq.jp/magazine/2014/03/7679/
 fragment フラグメント
http://www.atmarkit.co.jp/ait/articles/1108/23/news120.html
viewpaper
 http://android.keicode.com/basics/viewpager.php
 onSaveInstanceState
http://d.hatena.ne.jp/takeR/20120708/1341753256
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1495268949
bundle使用方法 デバッグ有用情報
http://qiita.com/kojionilk/items/138eea19dadb14997136
SuppressWarnings
http://www.atmarkit.co.jp/ait/articles/1105/19/news127_2.html
シリアライズ
http://d.hatena.ne.jp/daisuke-m/20100414/1271228333
オブジェクトのシリアライズとデシリアライズ
http://java.keicode.com/lang/io-object-serialize.php
http://buzzword111.hatenablog.com/entry/2013/12/26/121342
http://blog.codebook-10000.com/entry/20131225/1387901742
 Parcelableでオブジェクトを一時的に保存する Parcelable
http://techbooster.jpn.org/andriod/application/7131/
http://www.atmarkit.co.jp/ait/articles/1204/20/news140_3.html
parcelable
Bundle をビルダーパターンで書きたい
http://qiita.com/kojionilk/items/1432a50618a2defc126e
Fragmentを使ってみる
http://qiita.com/wakaba260/items/513823804840509bdeb2

getTargetRequestCode

柔軟性の高い、疎結合なフラグメント間通信の実装方法
http://android.keicode.com/basics/fragments-communicate-improved.php

フラグメント間の通信
http://android.keicode.com/basics/fragments-communicate.php

Bundle とは
http://qiita.com/kojionilk/items/138eea19dadb14997136

FragmentTabHost

Android初心者におすすめする「Fragmentによるシンプルで効率的なUI実装」
https://codeiq.jp/magazine/2014/03/7679/

Androidはワンツーパンチ 三歩進んで二歩下がる
http://sakura-bird1.hatenablog.com/entry/20130207/1360193574
Serializable
スレッド

JSONをパース(解析)する
http://techbooster.jpn.org/andriod/application/1645/
byte配列って何ですか?
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1441922874
Timerを使って定期実行する
http://techbooster.org/android/application/934/
android-経過時間表示のテクニック
http://blog.livedoor.jp/javacoffee/archives/4230017.html
時間の表示
http://java.petafield.com/android/2011/05/post-2.html
[自分用メモ] AndroidでのTimerとThreadとHandlerの連携について今一度自分なりの整理をしてみた
http://ultrah.zura.org/?p=3784
ThreadとHandlerでマルチスレッド処理化する
http://techbooster.org/android/application/6191/
定期処理ハンドラを用いて、Viewを再描画する
http://techbooster.org/android/application/1691/
MessageとHanelerを使って実装します。
sendMessageDelayedを使って間隔をあけてMessageを発行すると、
UIスレッドの中でHandlerのhandleMessageが呼び出されるので、その中でViewをinvalidateします。
http://andromemo.seesaa.net/article/177156313.html
AndroidのHandlerとは何か?
http://www.adamrocker.com/blog/261/what-is-the-handler-in-android.html
アクティビティは onSaveInstanceState() と onRestoreInstanceState() で状態の保存/復元をできるようです。
http://android.g.hatena.ne.jp/lnznt/20120412/1334239056
 Android:CursorのAPIまとめ
http://yuki312.blogspot.jp/2012/03/androidcursorapi.html
値がNULLのものを取得
http://www.dbonline.jp/sqlite/select/index7.html
文字列でよく使われるStringクラスやStringBufferクラスは、実はCharSequenceインタフェースを実装しています。
http://androidhacker.blog94.fc2.com/blog-entry-45.html

ど素人のAndroidアプリ開発入門
http://androidhacker.blog94.fc2.com/blog-entry-45.html

EclipseでAndroidエミュレータ上のSQLiteのデータを見る(←これはつかえる)
http://izumisy.blogspot.jp/2014/09/androidsqlite.html

データベースの削除はエミュレータのManage Applicationsから行おう
http://www.atmarkit.co.jp/ait/articles/0905/20/news111_3.html

SQLite を使用するときの環境設定
http://ameblo.jp/jesusisinus/entry-11108461962.html

style
service
adapter charsequence
json
dbviewer

Android Debug Bridge (adb)を使って、SQLiteを操作する。
http://www.appli-info.jp/archives/1094
Android:SQLiteツールでデータベースを参照する
http://yuki312.blogspot.jp/2012/03/androidsqlite.html

Android でのバックグラウンド処理 (←使える)
http://blog.takuo.jp/2011/10/android-background-process.html
スレッドの基礎
http://article.higlabo.com/ja/thread_fundamentals.html
ブロードキャスト レシーバ
http://ichitcltk.hustle.ne.jp/gudon2/index.php?pageType=file&id=Android026_BroadcastReceiver

ServiceからActivityに値を投げたり画面を更新したりする方法 サンプルソースコードあり †
http://onlineconsultant.jp/pukiwiki/?Service%E3%81%8B%E3%82%89Activity%E3%81%AB%E5%80%A4%E3%82%92%E6%8A%95%E3%81%92%E3%81%9F%E3%82%8A%E7%94%BB%E9%9D%A2%E3%82%92%E6%9B%B4%E6%96%B0%E3%81%97%E3%81%9F%E3%82%8A%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95

 startService()は、どのコンテキストでも呼び出せますが、bindService()はBroadcastReceiverのコンテキストからは呼び出せません。
 
 Androidのプロセス間通信を自由自在にするAIDL (2/3)
 http://www.atmarkit.co.jp/ait/articles/1206/15/news124_2.html
 Android 4.0のサービス/プロセス間通信の基本 (3/3)
 http://www.atmarkit.co.jp/ait/articles/1204/20/news140_3.html
 ServiceからActivityを起動する
 http://qiita.com/myaaaaa_chan/items/f0ace4f3839e291ae5bf
 Activityからサービスアクセス
 http://techbooster.org/android/application/3270/
 Androidアプリ開発メモ056:AlarmManager
 http://into.cocolog-nifty.com/pulog/2012/01/android056ala-1.html
ストリームでの入出力処理の基本
http://codezine.jp/article/detail/6299

Java 日付文字列をDate型へ変換
http://chat-messenger.net/blog-entry-45.html
Java あらゆる日付・時刻文字列をDate、Calendar型へ
http://chat-messenger.net/blog-entry-46.html

Android開発のためのJava SE再入門
http://codezine.jp/article/corner/422

画像の撮影と保存
SD カードに保存するときの注意点は、画像を保存してもアンドロイドデータベースに登録しないと再起動するまでギャラリー等のアプリで見ることができないので、保存後にファイルパスをアンドロイドデータベースに登録する必要があります。
http://androidguide.nomaki.jp/html/device/camera/camFileSave.html

LinearLayoutにdividerを挿入する
http://qiita.com/kubotaku1119/items/31c61c07e916fe2f8e48

tool/hierarchyviewer

まず二つのツールについて
・hierarchy viewer
viewの表示にかかる時間を計測する
・layoutopt
viewの表示を最適化するにはどうしたらいいか教えてくれる
http://masterka.seesaa.net/article/254879688.html

TextView で、テキストの一部だけクリック可能にする
http://qiita.com/amay077/items/7e5f33f28ac672b75b05

OnEditorActionListener を使って EditText への Enter キー入力やアクション入力をハンドルする       
http://vividcode.hatenablog.com/entry/android-app/oneditoractionlistener-practice
Android:TextView(EditText)のXML Attributesをある程度試してみる
http://nvtrlab.jp/blog/bunbunmaru/android%EF%BC%9Atextviewedittext%E3%81%AExml-attributes%E3%82%92%E3%81%82%E3%82%8B%E7%A8%8B%E5%BA%A6%E8%A9%A6%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B.html

divider
Style, Theme
9pac
Animation
shape

ListViewの行の間の区切り線を変える。
android:divider="#000000"
android:dividerHeight="2sp"
http://blog.inoaki.com/2010/05/listview_317.html

Android™ UI デザイン入門
http://oesf-edu.com/training/traininglist/android-ui/
9patchを覚えよう!
http://d.hatena.ne.jp/tomorrowkey/20110501/1304245217


viewflipper
http://techbooster.org/event/12398/

ActivityGroupをつかって複数Activityを表示する

一定時間で勝手に消えるダイアログサンプル#tryCustomDialog01
http://junkcode.aakaka.com/archives/524
https://groups.google.com/forum/#!topic/android-group-japan/ianwNJTJ5gw
CANVASでの直線運動
http://www.sist.ac.jp/~kanakubo/programming/canvas/canvas1.html

https://drive.google.com/viewerng/viewer?url=https://sites.google.com/site/yukianzm/fragment_fes/%25E7%25AC%25AC3%25E5%259B%259E%25E5%2590%258D%25E5%258F%25A4%25E5%25B1%258Bandroid%25E5%258B%2589%25E5%25BC%25B7%25E4%25BC%259A%2520Fragment%25E5%259F%25BA%25E7%25A4%258E%25E8%25AC%259B%25E5%25BA%25A7_%25E3%2583%258F%25E3%2583%25B3%25E3%2582%25B9%25E3%2582%2599%25E3%2582%25AA%25E3%2583%25B3.pdf&chrome=true

Fragment の利用パターン
http://www.slideshare.net/cpjptl/fragment-12610759?next_slideshow=1

Fragment+ViewPager試作
http://qiita.com/mackiso/items/1dacec44d9096bc6d900

Androidに最適化されたJavaクラス一覧
http://qiita.com/nein37/items/3127e772d98bf3995725

FragmentPagerAdapter を使って ViewPager をつくる
http://dev.classmethod.jp/smartphone/android/android-tips-31-fragment-pager-adapter/


ListView と ViewPager
https://github.com/mixi-inc/AndroidTraining/wiki/2.06.-ListView-%E3%81%A8-ViewPager#ViewPager

Android Tips #30 ViewPager を使ってスワイプで View を切り替える
http://dev.classmethod.jp/smartphone/android/android-tips-30-viewpager/

Fragment のインスタンス化の際、Fragment に対して、引数を何かしら渡したい場合がありますが、このためにコンストラクタや setter メソッドを使ってはいけません。
https://github.com/mixi-inc/AndroidTraining/wiki/2.02.-Activity-%E3%81%A8-Fragment#fragment
Activity と Fragment
https://github.com/mixi-inc/AndroidTraining/wiki/2.02.-Activity-%E3%81%A8-Fragment#fragment

FragmentとActivityの連携方法
http://quesera2.hatenablog.jp/entry/2014/04/09/003146
Toastをカスタマイズする
http://techbooster.jpn.org/andriod/ui/7647/

一つのインタフェースはイベントリスナを取得するもので、もう一つのインタフェースはイベントのコールバックを行うものです
http://itpro.nikkeibp.co.jp/article/COLUMN/20120720/410433/?ST=android-dev&P=6
ActionProviderを使用してMenuItemの処理を共通化する
http://techbooster.jpn.org/andriod/application/10018/

*****************************************
      エラー
****************************************
SDK Manager.exeでPackagesのInstallができない
http://androidjava.blog89.fc2.com/blog-entry-19.html
 [Android] AVD 起動時に、PANIC: Could not open: C:\Users\xxx\.android/avd/xxx.ini とエラーが出て起動できない場合の解決方法
http://digital4johnny.blog.fc2.com/blog-entry-110.html
androidでRのリソースを読み込まなくなっちゃたYo!
http://twoharf.blog134.fc2.com/blog-entry-363.html
 *****************************************
 Javaサンプル集
http://syunpon.com/programing/java/sample/index.shtml
*****************************************
      単語
****************************************
階層
http://developer.android.com/reference/android/graphics/Canvas.html
http://www.adakoda.com/adakoda/2010/01/20/ASPH_AW_REV1.pdf
*****************************************
      サンプル
****************************************
改訂2版 基礎から学ぶAndroidアプリ開発
http://www.c-r.com/book/detail/892
sample code 

ソフトウェア技術ドキュメントを勝手に翻訳
https://sites.google.com/a/techdoctranslator.com/jp/resources/samples
Android SDK開発のレシピ 第2版
http://www.shuwasystem.co.jp/support/7980html/3529.html

*****************************************
      参照
****************************************

xml
http://www.javadrive.jp/android/activity/index6.html

android職業訓練
http://www.heatwavenet.co.jp/program/andoroid.html
http://www.heatwavenet.co.jp/program/andoroid.html
http://www.heatwavenet.co.jp/program/andoroid.html
http://webhellowork.info/java%E3%80%81android%E9%96%8B%E7%99%BA%E3%81%AE%E8%81%B7%E6%A5%AD%E8%A8%93%E7%B7%B4%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/

java 職業訓練 サイト
https://sites.google.com/site/snk2013java/struts

HTMLの起源/XHTML
http://w-d-l.net/html__outline/

HTMLとCSS、XHTML入門
http://w-d-l.net/
HTML+CSS
http://w-d-l.net/introduction__learning/

Javaすら知らなかった私が5日間でAndroidアプリをリリースするためにやったこと。
http://www.lastday.jp/2012/03/14/java-android-app#

C言語すら知らなかった私が2ヶ月でiPhoneアプリをリリースするまでにやった事。
http://www.lastday.jp/2010/11/22/objective-c
C言語すら知らなかった私の半年後   2個めのiPhoneアプリをリリースするまでにやった事
http://www.lastday.jp/2011/03/10/how-to-releasesecond-iphone-app

楽しくAndroidアプリを作れる本
http://coin.nikkeibp.co.jp/coin/itpro-s/book/dtl/lin024.html

*****************************************
      まとめ
****************************************

●DDMS
●XMLエディタ ->右クリック XMLエディタ
●ビューグループ                        説 明   
Linear Layout                        縦、または横の直線状に部品を配置   
Relativel Layout                        部品同士をお互いの相対位置に配置   
Table Layout                        部品をマス目上に配置。HTMLのテーブルタグのようなイメージ   
Frame Layout                        部品を常に左上に配置。あまり利用しない   
Absolute Layout                        部品を絶対的位置に配置。Android では画面サイズがさまざまなので、   
                        使用すると対応機種が限定される   
Table Row                        TableLayout の中で使われる。テーブルの行の中に View を水平に配置する   
Grid View                        グリッド状に項目を表示する   
List View                        縦方向にスクロールが可能なリスト   
[参考]               
RelativeLayoutやLinearLayoutはグラフィカル・レイアウトでの編集が比較的容易です。               
一方GridLayoutはうまくいかないことが多いようです。               
●国際化(internationalization, i18n)