私は個人的には、メインロジックをクリーンアップするいくつかのヘルパーメソッドを作成します。これが頻繁に表示されるコードの場合はgetIntentAction
メソッドを保持する基底クラスActivity
を作成するか、Activity
またはそのIntent
をパラメータとして持つヘルパーで静的メソッドを作成します。
文字列の比較では、TextUtils.equals()
を使用できます。また、アクション名を含むStringがある場合は、equals
メソッドの左側に使用することができます。後で注文を交換しないようにしてください。
いくつかのサンプルコード:スイッチを使用
public void processMyIntentTextUtils()
{
String action = getIntentAction();
if(TextUtils.equals(action, WhateverAction))
{
// do something
}
if(TextUtils.equals(action, "anotherAction"))
{
// do something else
}
else
{
// got null or unexpected value
}
}
:
TextUtils
を使用
public void processMyIntent()
{
String action = getIntentAction();
if(WhateverAction.equals(action))
{
// do something
}
else if("thisAlsoWorksAction".equals(action)
{
// do something else
}
else
{
// got null or unexpected value
}
}
:左側の比較文字列を使用して
public static final String WhateverAction = "whatever";
public String getIntentAction()
{
Intent intent = getIntent();
return intent == null ? null : intent.getAction();
}
それは長ったらしい少しだけれども
ます。また、ちょうどこのワンライナーを実行してgetIntentAction
方法を持っていないと逃げることもできます。!
String intentAction = getIntent() != null ? getIntent().getAction() : null;
何をチェックすると、 'getIntent()getExtras()= NULL '? –
同じスニペットを複数回持っているのであれば、nullポインタ例外のtry catchブロックを – miskohut
にすることができます。 – k0sh