この画像は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 は 2 つのボタンとして使用することができます。それぞれのボタンに表示するテキストに基づいて、OnClick 内で対応する機能を設定します。
Activity を終了する#
プログラムに戻るボタンなどがある場合、新しい Activity を開くのではなく、本当に前のレベルに戻るためには、クリックイベントで finish (); を使用して現在の Activity を閉じる必要があります。以下のコードはその例です:
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" />
という行を追加してください。