この画像はEngin AkyurtによってPixabayに公開され、Android ロゴが組み合わされています。
独立したアプリを開発する過程で、いくつかの機能を関数として独立して書くことが、OnCreate () 内のコード量を減らし、特定の機能に問題が発生した際に他の機能を折りたたむことができると徐々に気づきました。全体的に機能を関数化することで、修正や読みやすさが向上するため、その後多くのコードを修正しました。例えば、TextView の入力を取得するこの例:
username.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
username_text = s.toString();
}
});
その後、同じ機能を使用する必要があるときは、次のように書きます:
OnCreate(){
username.addTextChangedListener(textwatcher);
}
TextWatcher textwatcher = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
username_text = s.toString();
}
};
これにより、修正やメンテナンスが非常に楽になり、OnCreate の外で自分が関心を持つ部分に集中でき、他の部分は折りたたむことができます。
インターフェースを常に横向きまたは縦向きに保つ#
例えば、いくつかのソーシャルプラットフォームのアプリを使用しているとき、特定の画面が自動的に回転する場合、ユーザー体験が悪化することがあります。したがって、画面を常に横向き / 縦向きに固定する方が良いでしょう。以下のコードは、画面を常に縦向きに保つものです:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
カスタム終了確認ダイアログ#
戻るジェスチャーや戻るキーを使用する際、多くのアプリは終了するかどうかを尋ねるダイアログを表示します。この部分は以下のコードで実現できます:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
AlertDialog.Builder bdr = new AlertDialog.Builder(this);
bdr.setMessage(R.string.app_name);
bdr.setIcon(R.drawable.icon);
bdr.setMessage(R.string.whether_quit);
bdr.setNegativeButton(R.string.exit, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
});
bdr.setPositiveButton(R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
bdr.show();
return true;
}
return super.onKeyDown(keyCode, event);
}
注意:このコードは onKeyDown 関数をオーバーライドしているため、@override は省略できません。コード内では AlertDialog を使用し、setMessage は表示する文字列で、通常は string.xml ファイルで定義されています(国際化のために便利です)。setIcon はアイコンを表示するために使用され、NegativeButton と PositiveButton はそれぞれのボタンとして扱い、設定した表示文字に応じて OnClick 内で対応する機能を設定できます。
アクティビティを終了する#
プログラムに「前の画面に戻る」ボタンがある場合、実際に前の画面に戻るためには、新しいアクティビティを開くのではなく、クリックイベント内で finish (); を使用して現在のアクティビティを閉じる必要があります。以下のコードのように:
backtoindex.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
デフォルトの緑のタイトルバーを削除する#
デフォルトで生成されるアプリにはタイトルバーがあり、あまり美しくありません。そのため、私はそれを削除する方法を考えています。AndroidManifest.xml ファイルの **「android」** の項目を、android:theme="@style/Theme.AppCompat.NoActionBar"
に置き換えると、タイトルバーを成功裏に削除できます。
Webview の net:: ERR_CACHE_MISS エラー#
このエラーが発生する理由は、アプリケーションにインターネット接続の権限が不足しているためです。AndroidManifest.xml ファイルの</application>
の下に新しい行を追加し、<uses-permission android:name="android.permission.INTERNET" />
を記入すれば大丈夫です。