0

我正在用 Android 编写一些东西,为了适应较旧的 SDK,我需要更改变量的内容。我正在使用ClipboardManager基于 SDK 的不同版本。问题是轻松创建此变量,我必须在 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())抱怨我。

除了制作两个变量并检查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
}

Eidt 编辑过的问题

   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 回答