SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

連載記事

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

CodeZine BOOKS(コードジン・ブックス)は、CodeZineの連載からカットアップした、開発現場の課題解決に役立つ書籍シリーズです。

書籍に関する記事を見る

'); googletag.cmd.push(function() { googletag.pubads().addEventListener('slotRenderEnded', function(e) { var ad_id = e.slot.getSlotElementId(); if (ad_id == 'div-gpt-ad-1659428980688-0') { var ad = $('#'+ad_id).find('iframe'); if ($(ad).width() == 728) { var ww = $(window).width(); ww = ww*0.90; var style = document.createElement("style"); document.head.appendChild( style ); var sheet = style.sheet; sheet.insertRule( "#div-gpt-ad-1659428980688-0 iframe {-moz-transform: scale("+ww/728+","+ww/728+");-moz-transform-origin: 0 0;-webkit-transform: scale("+ww/728+","+ww/728+");-webkit-transform-origin: 0 0;-o-transform: scale("+ww/728+","+ww/728+");-o-transform-origin: 0 0;-ms-transform: scale("+ww/728+","+ww/728+");-ms-transform-origin: 0 0;}", 0 ); sheet.insertRule( "#div-gpt-ad-1659428980688-0 div{ height:"+(90*ww/728)+"px;width:"+728+"px;}", 0 ); } else { if ($(window).width() < 340) { var ww = $(window).width(); ww = ww*0.875; var style = document.createElement("style"); document.head.appendChild( style ); var sheet = style.sheet; sheet.insertRule( "#div-gpt-ad-1659428980688-0 iframe {-moz-transform: scale("+ww/320+","+ww/320+");-moz-transform-origin: 0 0;-webkit-transform: scale("+ww/320+","+ww/320+");-webkit-transform-origin: 0 0;-o-transform: scale("+ww/320+","+ww/320+");-o-transform-origin: 0 0;-ms-transform: scale("+ww/320+","+ww/320+");-ms-transform-origin: 0 0;}", 0 ); sheet.insertRule( "#div-gpt-ad-1659428980688-0 div{ height:"+(180*ww/320)+"px;width:"+320+"px;}", 0 ); } } } }); }); } else { document.write('
'); document.write('
'); }
速習! Androidアプリケーション開発

アクティビティ実装時の勘どころ
~速習! Androidアプリケーション開発(5)~

第5回 アクティビティの実装その1


  • X ポスト
  • このエントリーをはてなブックマークに追加

ダウンロード サンプルソース (184.8 KB)

 この連載では、Androidの開発の楽しさを感じてもらう事を目標に、難しい内容はひとまず置いておいて、アプリケーション開発ができるようになるま でを最短ルートで説明していきます。今回は、Androidにおけるアクティビティ実装時の勘どころを、作成しながら解説していきます。

  • X ポスト
  • このエントリーをはてなブックマークに追加

Androidアプリケーションにおけるアクティビティ実装

 この連載では、Androidの開発の楽しさを感じてもらう事を目標に、難しい内容はひとまず置いておいて、アプリケーション開発ができるようになるま でを最短ルートで説明していきます。

 前回までの作業でデータベースの準備ができたので、今回からは各アクティビティの本格的な実装に入ります。

対象読者

 本連載はJavaおよびEclipseの基本を理解している方を対象としています。

前回までの記事

作成中のサンプルアプリケーション

 本連載では、いろいろな技術要素に触れるために、次のような「名刺管理アプリケーション」を作っています。

サンプルアプリケーションの機能概要

  • 名刺情報を一覧表示
  • 名刺情報の登録、更新
  • 名刺の登録情報から地図を表示
  • 名刺の登録情報から電話やメールなどの外部アプリケーションを利用
画面遷移のイメージ
画面遷移のイメージ

一覧画面の処理作成

 まずはデータベースから取得した結果を一覧画面に表示する処理を実装します。前回からの主な変更箇所は、次のとおりです。

  • ArrayAdaptorで扱うクラスをStringからBizCardに変更
  • onResume()でデータを取得し、取得したデータをArrayAdaptorに設定
ListActivity.java
package sample.bizcard;

import java.util.List;

import sample.bizcard.db.BizCard;
import sample.bizcard.db.BizCardDao;
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;

/**
 * 一覧表示アクティビティ
 */
public class ListActivity extends Activity {
    // 一覧表示用ListView
    private ListView listView = null;

    private ArrayAdapter<BizCard> arrayAdapter = null;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // 自動生成されたR.javaの定数を指定してXMLからレイアウトを生成
        setContentView(R.layout.main);

        // XMLで定義したandroid:idの値を指定してListViewを取得します。
        listView = (ListView) findViewById(R.id.list);

        // ListViewに表示する要素を保持するアダプタを生成します。
        arrayAdapter = new ArrayAdapter<BizCard>(this,
                android.R.layout.simple_list_item_1);

        // アダプタを設定
        listView.setAdapter(arrayAdapter);
    }

    /**
     * アクティビティが前面に来るたびにデータを更新
     */
    @Override
    protected void onResume() {
        super.onResume();

        BizCardDao dao = new BizCardDao(ListActivity.this);
        List<BizCard> result = dao.list();
        // 表示データのクリア
        arrayAdapter.clear();

        // 表示データの設定
        for (BizCard bizCard : result) {
            arrayAdapter.add(bizCard);
        }
    }
}

 この状態でも問題はないのですが、処理に時間のかかるデータベースアクセスやネットワークの処理をUIスレッドで行ってしまうと、描画が行われずに固まったような状態に見えてしまいます。そのような場合は、非同期(バックグランド)で処理を行う事で描画やユーザーの入力は止めずに処理を実行できます。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
非同期処理を実現する仕組みAsyncTask

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
速習! Androidアプリケーション開発連載記事一覧

もっと読む

この記事の著者

横井 朗(ヨコイ アキラ)

株式会社ビーブレイクシステムズにて業務システムのパッケージソフト(MA-EYES)の製品開発から導入までを手掛けるとともに、オープンソースソフトウェア(ExCella)の開発リーダも務める。オープンソース関連について多くの執筆経験を持つ。  

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/4842 2010/01/29 16:22
" ); }

おすすめ

アクセスランキング

  1. 1
    "けしからん"精神が切り拓く未来──IPA登氏が語る、技術大国・日本が目指す復活戦略
  2. 2
    JavaScriptのWebフレームワーク、「Astro 5.1」リリース
  3. 3
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革
  4. 4
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  5. 5
    Google、社内AIエージェント「Google Agentspace」発表
  1. 6
    技術力だけでは乗り越えられないビジネスの壁を乗り越える!推し技術を組織に根付かせる「戦略的エンジニアリング」
  2. 7
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  3. 8
    Linuxディストリビューション「Serpent OS」、アルファ版がリリース
  4. 9
    AWS、ノーコードで生成AIアプリを作れる「PartyRock」の新機能を紹介、2025年以降は無料で誰でも利用できるように
  5. 10
    2024年は開発者にとってどんな年だったのか? CodeZineの人気ニュースランキングから振り返る

アクセスランキング

  1. 1
    "けしからん"精神が切り拓く未来──IPA登氏が語る、技術大国・日本が目指す復活戦略
  2. 2
    JavaScriptのWebフレームワーク、「Astro 5.1」リリース
  3. 3
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革
  4. 4
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  5. 5
    Google、社内AIエージェント「Google Agentspace」発表
  6. 6
    技術力だけでは乗り越えられないビジネスの壁を乗り越える!推し技術を組織に根付かせる「戦略的エンジニアリング」
  7. 7
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  8. 8
    Linuxディストリビューション「Serpent OS」、アルファ版がリリース
  9. 9
    AWS、ノーコードで生成AIアプリを作れる「PartyRock」の新機能を紹介、2025年以降は無料で誰でも利用できるように
  10. 10
    2024年は開発者にとってどんな年だったのか? CodeZineの人気ニュースランキングから振り返る
  1. 1
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  2. 2
    「CUDA」 ~マンガでプログラミング用語解説
  3. 3
    ITエンジニア本大賞2025、投票締切直前! みんなで選んだ歴代の大賞本を振り返って一挙紹介
  4. 4
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革
  5. 5
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  6. 6
    Google、社内AIエージェント「Google Agentspace」発表
  7. 7
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  8. 8
    "けしからん"精神が切り拓く未来──IPA登氏が語る、技術大国・日本が目指す復活戦略
  9. 9
    日本在住の英語を話すソフトウェア開発者、年収の中央値は950万円に
  10. 10
    JavaScriptのWebフレームワーク、「Astro 5.1」リリース

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

メールバックナンバー

アクセスランキング

  1. 1
    "けしからん"精神が切り拓く未来──IPA登氏が語る、技術大国・日本が目指す復活戦略
  2. 2
    JavaScriptのWebフレームワーク、「Astro 5.1」リリース
  3. 3
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革
  4. 4
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  5. 5
    Google、社内AIエージェント「Google Agentspace」発表
  1. 6
    技術力だけでは乗り越えられないビジネスの壁を乗り越える!推し技術を組織に根付かせる「戦略的エンジニアリング」
  2. 7
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  3. 8
    Linuxディストリビューション「Serpent OS」、アルファ版がリリース
  4. 9
    AWS、ノーコードで生成AIアプリを作れる「PartyRock」の新機能を紹介、2025年以降は無料で誰でも利用できるように
  5. 10
    2024年は開発者にとってどんな年だったのか? CodeZineの人気ニュースランキングから振り返る

アクセスランキング

  1. 1
    "けしからん"精神が切り拓く未来──IPA登氏が語る、技術大国・日本が目指す復活戦略
  2. 2
    JavaScriptのWebフレームワーク、「Astro 5.1」リリース
  3. 3
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革
  4. 4
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  5. 5
    Google、社内AIエージェント「Google Agentspace」発表
  6. 6
    技術力だけでは乗り越えられないビジネスの壁を乗り越える!推し技術を組織に根付かせる「戦略的エンジニアリング」
  7. 7
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  8. 8
    Linuxディストリビューション「Serpent OS」、アルファ版がリリース
  9. 9
    AWS、ノーコードで生成AIアプリを作れる「PartyRock」の新機能を紹介、2025年以降は無料で誰でも利用できるように
  10. 10
    2024年は開発者にとってどんな年だったのか? CodeZineの人気ニュースランキングから振り返る
  1. 1
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  2. 2
    「CUDA」 ~マンガでプログラミング用語解説
  3. 3
    ITエンジニア本大賞2025、投票締切直前! みんなで選んだ歴代の大賞本を振り返って一挙紹介
  4. 4
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革
  5. 5
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  6. 6
    Google、社内AIエージェント「Google Agentspace」発表
  7. 7
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  8. 8
    "けしからん"精神が切り拓く未来──IPA登氏が語る、技術大国・日本が目指す復活戦略
  9. 9
    日本在住の英語を話すソフトウェア開発者、年収の中央値は950万円に
  10. 10
    JavaScriptのWebフレームワーク、「Astro 5.1」リリース