|ハイブリッドOS|File System|ARM|Android|Java|制御システム|オープンシステム

 

Android

 
フォーム
 
タイトルを表示しない。
2013-09-06
アプリケーションのタイトルを表示しない方法です。

■サンプルソース
src/jp.co.newral.sample.notitle/MainActivity.java

package jp.co.newral.sample.notitle;

import android.app.Activity;
import android.os.Bundle;
import android.view.Window;

public class MainActivity extends Activity {

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

// タイトルを表示しない。
// setContentViewの前に実行すること。
requestWindowFeature(Window.FEATURE_NO_TITLE);

setContentView(R.layout.main);
}
}
 
サービスを使用する。
2013-09-02
Androidのサービスとはバックグラウンドで動作するコンポーネントのことです。
サービスを使用するにはstartService()/stopService()を利用する方法とbindService()/unbindService()を使用する方法があります。
今回はstartService()/stopService()を使用します。

■サンプルソース
○res/layout/activity_main.xml
startServiceを呼び出すbutton1ボタンとstopServiceを呼び出すbutton2ボタンを設定します。

xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

 
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="startService" />

 
android:id="@+id/button2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/button1"
android:text="stopService" />
 

○src/jp.co.newral.sample.service/SampleService.java
今回作成するサービスです。
各コールバックメソッドが呼び出されたタイミングでToast表示します。

package jp.co.newral.sample.service;

import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.widget.Toast;

/**
* サンプルのサービス
*
* @version 1.0 新規作成
*
*/
public class SampleService extends Service {

/**
* バインドされる時に呼び出される。
* 今回は使用しないため、nullを返却します。
*
* @param intent インテント
*/
@Override
public IBinder onBind(Intent intent) {
Toast.makeText(this, "onBind() intent=[" + intent + "]", Toast.LENGTH_SHORT).show();
return null;
}

/**
* 生成された時に呼び出されます。
*/
@Override
public void onCreate() {
Toast.makeText(this, "onCreate()", Toast.LENGTH_SHORT).show();
}

/**
* サービスが開始した時に呼び出されます。
*
* @param intent インテント
* @param flags フラグ
* @param startId 開始ID
* @return 処理結果
* START_NOT_STICKY サービスを起動するペンディングインテントが存在しない限り
* サービスは再起動されません。
* START_STICKY サービスを起動するペンディングインテントが存在しない場合、
* インテントをnullにしてサービスを再起動します。
* START_REDELIVER_INTENT 最後にサービスを起動したインテントでサービスを
*
 再起動します。
* START_STICKY_COMPATIBILITY システムにより再起動されることが保障されません。
*/
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Toast.makeText(this, "onStartCommand()", Toast.LENGTH_SHORT).show();
return START_STICKY;
}

/**
* 終了する時に呼び出されます。
*/
@Override
public void onDestroy() {
Toast.makeText(this, "onDestroy()", Toast.LENGTH_SHORT).show();
}
}

○src/jp.co.newral.sample.service/MainActivity.java
サービスを開始/停止するアクティビティです。

package jp.co.newral.sample.service;

import android.app.Activity;
import android.content.ComponentName;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

/**
* サービスを使用するサンプル
*
* @version 1.0 新規作成
*
*/
public class MainActivity extends Activity implements OnClickListener {

/**
* 生成される時に呼び出される。
*
* @param savedInstanceState 保存時のインスタンスの状態
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
// スーパークラスのメソッドを呼び出す。
super.onCreate(savedInstanceState);

// レイアウトを設定する。
setContentView(R.layout.activity_main);

// 各ボタンにリスナーを設定する。
((Button)findViewById(R.id.button1)).setOnClickListener(this);
((Button)findViewById(R.id.button2)).setOnClickListener(this);
}

/**
* ボタンがクリックされた時に呼び出される。
*
* @param v クリックされたボタン
*/
@Override
public void onClick(View v) {
// ボタンのIDを取得する。
int id = v.getId();
 
ListViewを使用してリスト表示する。
2013-08-26
今回はListViewを使用してリスト表示します。

■サンプルソース
○res/layout/activity_main.xml
ListViewを追加し、idに"listView1"を設定します。

xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

 
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
 

 

○src/jp.co.newral.sample.listactivity/MainActivity.java
リスト表示する項目の配列を用意して、アダプターを介してListViewに設定します。

package jpco.newral.sample.listview;

import android.os.Bundle;
import android.app.Activity;
import android.widget.ArrayAdapter;
import android.widget.ListView;

/**
* リストビューのサンプル
*
*/
public class MainActivity extends Activity {

/** リスト表示する項目 */
private String[] mItems = {"オレンジ", "リンゴ", "パイナップル"};

/**
* 生成された時に呼び出される。
*
* @param savedInstanceState 保存時のインスタンスの状態
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
// スーパークラスのメソッドを呼び出す。
super.onCreate(savedInstanceState);

// レイアウトを設定する。
setContentView(R.layout.activity_main);

// アダプターを生成する。
ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, mItems);

// リストビューにアダプターを設定する。
((ListView)findViewById(R.id.listView1)).setAdapter(adapter);
}
}
 
ListActivityを使用してリスト表示する。
2013-08-26
リスト表示する方法はListViewを使用する方法とListActivityを使用する方法があります。
今回はListActivityを使用します。

■サンプルソース
○src/jp.co.newral.sample.listactivity/MainActivity.java
リスト表示する項目の配列を用意して、アダプターを介して設定します。

package jp.co.newral.sample.listactivity;

import android.app.ListActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;

/**
* ListActivityのサンプル
*
*/
public class MainActivity extends ListActivity {

/** リスト表示する項目 */
private String[] mItems = {"オレンジ", "リンゴ", "パイナップル"};

/**
* 生成された時に呼び出される。
*
* @param savedInstanceState 保存した時のインスタンスの状態
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
// スーパークラスのメソッドを呼び出す。
super.onCreate(savedInstanceState);

// アダプターを生成する。
ArrayAdapter adapter =
new ArrayAdapter(this, android.R.layout.simple_list_item_1, mItems);

// アダプターを設定する。
setListAdapter(adapter);
}
}
 
設定値を保存・参照する。
2013-08-22
設定値を保存・参照するにはSharedPreferenceを使用します。

■サンプルソース
○res/layout/activity_main.xml
以下のコントロールを設定します。
設定値を入力するEditText(ID:inputValue)
設定値を書き出すボタン(ID:writeButton)
設定値を読み込むボタン(ID:readButton)
読み出した設定値を表示するTextView(ID:readLabel)

    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    
        android:id="@+id/inputValue"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerInParent="true"
        android:ems="10" >
 
 
 
 
        android:id="@+id/writeButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/inputValue"
        android:text="書込" />

    
        android:id="@+id/readButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/inputValue"
        android:layout_toRightOf="@id/writeButton"
        android:text="読出" />

    
        android:id="@+id/readLabel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/writeButton"
        android:text="" />
 
○src/jp.co.newral.sample.sharedpreference/MainActivity.java

package jp.co.newral.sample.sharedpreference;

import android.app.Activity;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

/**
 * メインアクティビティクラス
 * シェアードプリフェレンスのサンプル
 *
 */
public class MainActivity extends Activity implements OnClickListener {

    /** 入力値を保存するキー */
    private static final String INPUT_VALUE_KEY = "inputValue";

    /** シェアードプリフェレンス */
    private SharedPreferences mPref;

    /** 値を入力する。 */
    private EditText mInputValue;

    /** 詠み出した値を表示する。 */
    private TextView mReadLabel;

    /**
     * 生成された時に呼び出される。
     *
     * @param savedInstanceState 保存時のインスタンスの状態
     */
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // スーパークラスのメソッドを呼び出す。
        super.onCreate(savedInstanceState);

        // レイアウトを設定する。
        setContentView(R.layout.activity_main);

        // シェアードプリフェレンスを取得する。
        mPref = PreferenceManager.getDefaultSharedPreferences(MainActivity.this);

        // 各ボタンにクリックリスナーを設定する。
        ((Button)findViewById(R.id.writeButton)).setOnClickListener(MainActivity.this);
        ((Button)findViewById(R.id.readButton)).setOnClickListener(MainActivity.this);

        // 各コントロールを取得する。
        mInputValue = (EditText)findViewById(R.id.inputValue);
        mReadLabel = (TextView)findViewById(R.id.readLabel);
    }

    /**
     * ボタンがクリックされた時に呼び出される。
     *
     * @param v クリックされたボタン
     */
    @Override
    public void onClick(View v) {
        // ボタンIDを取得する。
        int id = v.getId();

        // ボタンにより処理を判別する。
        switch (id) {
        // 書込ボタンの場合
        case R.id.writeButton:
            String text = "";

            // 入力値を取得する。
            String value = mInputValue.getText().toString();

            // 入力値が取得できた場合
            if ((null != value) && !"".equals(value)) {
                // 入力値を書き込む。
                Editor editor = mPref.edit();
                editor.putString(INPUT_VALUE_KEY, value);

                // 書込に成功した場合
                if (editor.commit()) {
                    text = value + "を書込みました。";

                // 書込に失敗した場合
                } else {
                    text = value + "の書込みに失敗しました。";
                }

            // 未入力の場合
            } else {
                text = "値を入力してください。";
            }

            // 書込結果をトースト表示する。
            Toast.makeText(MainActivity.this, text, Toast.LENGTH_SHORT).show();
            break;

        // 読出ボタンの場合
        case R.id.readButton:
            // 保存値を取得する。
            String label = mPref.getString(INPUT_VALUE_KEY, "");

            // 保存値がある場合
            if (!"".equals(label)) {
                // 保存値を表示する。
                mReadLabel.setText("保存された値は[" + label + "]です。");

            // 保存値が無い場合
            } else {
                mReadLabel.setText("保存された値はありません。");
            }
            break;

        default:
            break;
        }
    }
}