Mono Works

チラシのすきま

Android開発” タグのついた記事一覧
  • 以前、ビューをページ内に配置する方法の例として、LinearLayout と RelativeLayoutについて書きました。これらのレイアウト方法は、ひとつの画面に決まったビューのみ表示する場合にシンプルで良い方法だと思います。

    メモ:ビューの配置 - LinearLayout と RelativeLayout - Mono Works

    今回は、複数のデータを並べて表示して、もしデータが多くて画面に収まらない場合はスクロールさせて表示するといったことが可能になるListViewについて調べてみました。

    androiddevmemo20150916_00
  • これまたよく見かけるfindViewByIdについてのメモ。字面から、「idでViewを見つける」んだなということはなんとなく想像できます。

    idと言えば、下記メモで、xmlに定義されたリソースにIDを割り振って、R.javaファイルに保存するということを書きました。リソースに割り振られたIDを使って、java側でリソースを利用するための架け橋が「findViewById」です。

    メモ:「id="@+id/名前"」という構文について - Mono Works

    では、そのリソースIDがどのxmlファイルに定義されているのかというのは、「setContentView」で設定しています。この辺については、下記メモに書いてます。 メモ:setContentViewについて - Mono Works

  • ListViewについて調べているうちに、findViewByIdについて調べ始めたり、どんどん分からないことが出てきて、いろんな脇道に逸れてしまってます。今回は、そんな脇道のひとつ「コードを記述する上でのお作法」について書いていこうと思います。

    「コードを記述する上でのお作法」とは、主に可読性を良くするために確立されたスタイルで、「ルール」ではありません。お作法は、守らなくてもビルドは通りますが、見る人が見れば「読みにくい」でしょうから、できるだけ遵守することにします。

    以前、xmlで定義したButtonビューをjavaの中で紐付ける部分の記述していたのですが、その時の記述(一部抜粋)は、以下のとおりでした。

    public class MainActivity extends AppCompatActivity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);</br>  Button btnGoogleMaps = (Button) this.findViewById(R.id.button1);
            btnGoogleMaps.setOnClickListener(new View.OnClickListener(){
                public void onClick(View v){
    

    同じように、xmlのButtonビューの定義をおこなう記述で、Buttonの頭に「m」が付いた記法を見つけたので、どういった理由によるもので、どういった使い分けをしているのか調べてみました。

    public class MainActivity extends AppCompatActivity {
    
        private Button mButton;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);</br>  mButton = (Button) this.findViewById(R.id.button1);
            mButton.setOnClickListener(new View.OnClickListener(){
                public void onClick(View v){
    

    結論から書くと、どういう使い分けなのかは分からずじまいでしたが、内容的には上記2つの記法は、どちらも同じことを表していて、「mButton」は「コードを記述する上でのお作法」に則って記述されているというものでした。

  • レイアウト用 xmlファイルのサンプルを作っていると、よく見かける LinearLayoutと RelativeLayoutについて調べてみました。

    日本語にすると、そのまんまです。

    LinearLayout(直線的な配置)

    RelativeLayout(相対的な配置)

    LinearLayoutは、ビューを縦方向または横方向一列に並べる配置です。

    RelativeLayoutは、親の位置を基準として相対的な指示でビューを配置する方法です。親を配置可能エリア全体とするか、任意の配置済みビューとするかで指示の方法が異なります。

  • そもそもは、ListViewについて調べていたんですが、流れでRecyclerViewにまで手を出してしまいました。とりあえずサンプルをポチポチしていると、RecyclerViewクラスを利用するためにサポートライブラリ v7を参照できるようBuild.gradleのdependencies部分に下記の4行目を追加しました。

    dependencies {
      compile fileTree(include: ['*.jar'], dir: 'libs')
      compile 'com.android.support:appcompat-v7:22.2.1'
      compile 'com.android.support:recycleview-v7:22.2.1'
    }
    

    しかし、これでビルドしようとしても、こんなエラーが出て先に進みません。

  • 前回、Intentを使って、Googleマップへ指定した座標を渡して表示する方法を紹介しました。

    Uri gmUri = Uri.parse("geo:35.684331,139.735232?z=19");
    Intent gmIntent = new Intent(Intent.ACTION_VIEW, gmUri);
    gmIntent.setPackage("com.google.android.apps.maps");
    startActivity(gmIntent);
    

    メモ:Google Mapsでうちの会社の場所を表示 - Mono Works

    今回は、Googleマップへ渡すパラメータについて、もう少し紹介したいと思います。といっても、ほぼ下記ページを訳しただけ。

    Launch Google Maps  |  Maps SDK for Android  |  Google Developers

  • 以前、インテントの基本についてメモした時に、URL情報をブラウザアプリに渡すお話しをしました。

    メモ:インテントのキホン - Mono Works

    今回は、位置情報を地図アプリに渡して、表示する方法についてメモ。

    androiddevmemo20150903_00

    そして、Xperia Z3 Compact SO-02Gで会社の入ったビルをGoogleマップで表示させてみました。

  • 前回、Android Studioのプロジェクト新規作成で自動生成された下記のコードで@Overrideに関するメモを記載しましたが、この中で実際に実行する処理「setContentView」について、今回メモしておきます。

    @Override
    protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main); /* 実行したい処理 */
    }
    
  • @Overrideって何だろ?から始まって、@Overrideが「Javaで用意されているアノテーション」ということが分かったのですが、今度は「アノテーション」って何?となり、いつものように脇道に逸れつつ調べものをしたのでメモっておきます。

    androiddevmemo20150901_01

    自分なりに解釈すると、@Override はアノテーションと呼ばれるJavaの標準機能のひとつで、あるメソッドに@Overrideを付記することで「スーパークラスで定義されたメソッドを@Overrideを付記したメソッドでオーバーライド(サブクラスで再定義して、動作を上書き)していること」を宣言しています。

    具体的な記述を見てみましょう。

  • Android Studioを使ってサンプルを作っていると、こんな動作をよく見かけます。

    例えば、画面にボタンを配置しようとして、xmlファイルに「<Button」と入力して、Enterキーで改行します。すると、下記の状態まで自動入力され、「layout_width」のパラメータを入力する位置にフォーカスが移動します。

    androiddevmemo20150827_00

    これは、Android Studioのコード補完機能で、ボタンを配置する上で最低限必要な「幅(layout_width)」と「高さ(layout_height)」のパラメータを設定する準備を調えてくれるありがたい機能です。

    <Button
      android:layout_width="パラメータ"
      android:layout_height="パラメータ" />
    

    Android Studioが御膳立てを済ませてくれたので、今度は自分で値を設定する番です。幅や高さに設定するパラメータは下記の3つ。

執筆者
"ぽぽろんち" @pporoch
pporoch120
Mono Worksの中の人。好きなことをつらつらと書き留めてます。
ギターを始めてから 練習動画をYouTubeにアップしてます。ご笑納ください。
"DQX@ぬここ(UD487-754)、コツメ(NO078-818)"
採用案内