2016-03-24 26 views
-1

は私のコードです:MenuItemのtoStringメソッドが空のStringを返します。なぜですか?ここ

@Override 
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
     super.onCreateOptionsMenu(menu, inflater); 
     inflater.inflate(R.menu.tracking_menu, menu); 

     myLocationMenuItem = menu.getItem(0); 

     if (myLocationMenuItem == null) { 
      Log.i("MenuItemLogging", "instance is: null"); 
     } else { 
      Log.i("MenuItemLogging", "instance is not null: " + myLocationMenuItem.toString()); 
     } 
    } 

ここでは、ログです:

3月24日10:19:06.215:I/MenuItemLogging(8519):インスタンスがnullではありません。

は、myLocationMenuItem.toString()の戻り値の文字列ではありません。

MenuItemクラスはオブジェクトと同じのtoStringあります

public String toString() { 
     return getClass().getName() + '@' + Integer.toHexString(hashCode()); 
    } 

をしかし、それは空の文字列を返します。

これはどのように可能ですか?あなたはすでに、次のページを見ていない場合は

+0

はそれのtoStringについてちょうど好奇心はありますか? – Blackbelt

+0

toStringについて「理解していません」、空のStringを返す方法は? –

+1

あなたはおそらく間違ったクラスを探しているでしょう。あなたはその実装をどこで見つけましたか? – Blackbelt

答えて

1

MenuItemはインターフェースです。 myLocationMenuItem.toString()の実装を取得しようとすると、ObjectのtoString()実装が得られます。何が欲しいのはMenuItemMenuItemImpl)を実装するクラスののtoString()の実装、

@Override 
public String toString() { 
    return mTitle != null ? mTitle.toString() : null; 
} 
関連する問題