カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

SDカードのパスを取得

String PATH = Environment.getExternalStorageDirectory().getPath();

環境変数からSDカードのパスを取得

// SDカードのパスを取得
public static String getExternalStoragePath() {
    String path;

    // Sumsung GALAXY Tab SC-01C 対応
    path = System.getenv("EXTERNAL_STORAGE2");
    if (path != null) return path;

    // MOTOROLA Photon ISW11M 対応
    path = System.getenv("EXTERNAL_ALT_STORAGE");
    if (path != null) return path;

    // その他機種
    return System.getenv("EXTERNAL_STORAGE");
}
2,600 views

res/drawableの画像の変更が反映されないとき

ビルドの際にbin/resディレクトリ以下にファイルがキャッシュされているので、
変更したい画像を削除します。

Eclipseでは[プロジェクト]-[クリーン]でキャッシュをキレイにできます。

4,016 views

Activityの見た目をダイアログにする

Activity(画面)を簡単にダイアログにすることができます。
AndroidManifest.xmlのactivityタグに以下のように指定します。

android:theme="@android:style/Theme.Dialog"
1,767 views

設定画面の説明文を設定内容によって変更する

例としてEditTextPreferenceの設定がされていればSummaryに表示するようにします。

リスナーをimplementsする場合

public class Setting extends PreferenceActivity implements SharedPreferences.OnSharedPreferenceChangeListener {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.pref);

        PreferenceScreen ps = getPreferenceScreen();
        EditTextPreference ep = (EditTextPreference)ps.findPreference("key");
        if(ep.getText() != null && !ep.getText().equals("")) ep.setSummary(ep.getText());
    }

    @Override
    protected void onResume() {
        super.onResume();
        getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
    }

    @Override
    protected void onPause() {
        super.onPause();
        getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
    }

    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {

        if(key.equals("key")) {
            PreferenceScreen ps = getPreferenceScreen();
            EditTextPreference ep = (EditTextPreference)ps.findPreference("key");
            if(ep.getText() != null && !ep.getText().equals("")) {
                ep.setSummary(ep.getText());
            } else {
                ep.setSummary("デフォルトのSummary");
            }
        }
    }

}

続きを読む…»

4,189 views

EditTextの使い方

EditText editText = (EditText)findViewById(R.id.editText);

//複数行の場合、最大行数を設定
editText.setMaxLines(1);

//EditTextが未入力のときに表示させるヒントテキストを設定
editText.setHint("入力例");

入力モードを設定する

//数値入力
editText.setInputType(InputType.TYPE_CLASS_NUMBER);

//URL入力
editText.setInputType(InputType.TYPE_CLASS_TEXT|InputType.TYPE_TEXT_VARIATION_URI);

//パスワード入力
editText.setInputType(InputType.TYPE_CLASS_TEXT|InputType.TYPE_TEXT_VARIATION_PASSWORD);

//メールアドレス
editText.setInputType(InputType.TYPE_CLASS_TEXT|InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);

//複数行入力
editText.setInputType(InputType.TYPE_CLASS_TEXT|InputType.TYPE_TEXT_FLAG_MULTI_LINE);

他にも設定値が多数あります。
参考:http://developer.android.com/intl/ja/reference/android/text/InputType.html

XMLで設定する場合

<EditText android:inputType="number" />
<EditText android:inputType="textUri" />
<EditText android:inputType="textPassword" />
<EditText android:inputType="textEmailAddress" />
<EditText android:inputType="textMultiLine" />
5,840 views