0

私は Android で何かを書いていますが、古い SDK に合わせて調整するために、変数がどうなるかを変更する必要があります。ClipboardManagerSDKに基づいて異なるバージョンを持つものを使用しています。問題は、この変数を簡単に作成することです。if で作成する必要があり、変数が検出されないためにコードがコンパイルされません。

例:

if(android.os.Build.VERSION.SDK_INT >= 11){
    final android.content.ClipboardManager clipboard = (ClipboardManager)context.getSystemService(Context.CLIPBOARD_SERVICE);
} else {
    final android.text.ClipboardManager clipboard = (ClipboardManager)context.getSystemService(Context.CLIPBOARD_SERVICE);
}
if (clipboard.hasPrimaryClip()) {
    // Do stuff
}

クリップボードのインスタンスは SDK に依存するため、私にif (clipboard.hasPrimaryClip())文句を言います。

2 つの変数を作成して null をチェックする以外にこれを行う方法はありますか?

4

1 に答える 1

0

クラスメンバーとして宣言する

ClipboardManager clipboard;

それで

if(android.os.Build.VERSION.SDK_INT >= 11){
clipboard = (ClipboardManager)context.getSystemService(Context.CLIPBOARD_SERVICE);
}else {
 clipboard = (ClipboardManager)context.getSystemService(Context.CLIPBOARD_SERVICE);
}
 if (clipboard.hasPrimaryClip()) {
// Do stuff
}

編集された質問へのエイト

   if(android.os.Build.VERSION.SDK_INT >= 11){
     final android.content.ClipboardManager clipboard =  (ClipboardManager)context.getSystemService(Context.CLIPBOARD_SERVICE);
       if (clipboard.hasPrimaryClip()) {
        // Do stuff
        doSomething(); 
       }
   } else {
     final android.text.ClipboardManager clipboard =(ClipboardManager)context.getSystemService(Context.CLIPBOARD_SERVICE);
      if (clipboard.hasPrimaryClip()) {
        // Do stuff
        doSomething(); 
       }
   }

それで

 public void doSomething()
 {

 }  
于 2013-09-27T04:32:11.843 に答える