8

私は最近、Eclipseでの私のAndroidプロジェクトからv4のサポートライブラリを削除この質問はまた、AndroidのデベロッパーGoogleグループ(link)上の誰かに頼まれましたが、それは答えを持っていません...Androidサポートライブラリを使用していない場合のNavUtilsに相当しますか?

私のアプリケーションはAndroid 4.0(Ice Cream Sandwich)以上のものしかターゲットにしていないからです。私は今、私にエラーを与えているすべてのサポートライブラリリファレンスを調べています。

特に、NavUtilsは、アクティビティナビゲーションで使用されるサポートライブラリクラスのようです。例:

@Override 
public boolean onOptionsItemSelected(MenuItem item) 
{ 
    switch (item.getItemId()) 
    { 
    case android.R.id.home: 
     NavUtils.navigateUpFromSameTask(this); 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 

サポートライブラリを使用しない場合のNavUtilsの相当値は何ですか?

答えて

4

NavUtilsのソースコードを見て、必要に応じてプロジェクトにコピーしてください。これは、マニフェストに設定されている親アクティビティを取得して開始します。

+1

ポストICS(JB以上)のすべての 'NavUtils'関数は' Activity'クラスに組み込まれています。 API 15以上をターゲットにしている場合は、 'NavUtils'はまったく必要ありません。 – dcow

+0

@DavidCowden API 16以上をターゲットにしている場合は、 15にはまだNavUtilsが必要です。 –

+0

@DoctororDriveはい、それはタイプミスです。それをキャッチするためにありがとう。 – dcow

1

私は@ Nikolayのアプローチが、あなたのプロジェクトにAndroid v4のサポートライブラリ全体を持っていないことを望むなら、最高のものであることを発見しました。

これはあなたのプロジェクトにコピーする必要があるクラスのリストです:

0

Jelly BeansのAndroidバージョンでは、NavUtilsがActivityクラスに組み込まれています。

ケースを処理する必要はありません。onOptionsItemSelected()内のandroid.R.id.homeです。 または、は、この場合、onOptionsItemSelected()のfalseを返すことができます。ここで

0

は私が見つけることができるこの最も単純な答えである、と私は私のコードで行った:

単に置き換える:

NavUtils.navigateUpFromSameTask(this); 

で:

navigateUpTo(getParentActivityIntent()); 

この情報がお役に立てば幸い!

関連する問題