2017-06-22 78 views
0

我正在嘗試構建Android Wear應用程序。當我使用APK 23(Marshmallow)或更高版本開始新項目時,我使用新項目獲得的默認代碼如下:Android Wear - WatchViewStub已棄用

public class MainActivity extends Activity { 

    private TextView mTextView; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     final WatchViewStub stub = (WatchViewStub) findViewById(R.id.watch_view_stub); 
     stub.setOnLayoutInflatedListener(new WatchViewStub.OnLayoutInflatedListener() 
     { 
      @Override 
      public void onLayoutInflated(WatchViewStub stub) 
      { 
       mTextView = (TextView) stub.findViewById(R.id.textView); 
      } 
     }); 
    } 
} 

但是根據Android blogWatchViewStub類是從API 23(棉花糖)棄用。根據博客文件rect_activity_main.xmlround_activity_main.xml被替換爲一個佈局文件。但我的問題是,即使當我用新的API開始一個新項目時,我仍然在我的項目中得到棄用的類和文件(XML)。根據博客,這是新的默認代碼應該如何在main_activity.java;

protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    mTextView = (TextView) findViewById(R.id.text);  
} 

我該如何解決這個問題?請在投票前發表評論。我在網上嘗試了很多東西,詢問堆棧溢出是我的最後手段。

+0

你使用的是什麼版本的Android工作室?也許你應該更新到最新的穩定版本 –

+0

你也可以查看這個[博客](https://sterlingudell.wordpress.com/category/wearables/),這提供了一個解決方法,以廢棄的WatchViewStub。你可以使用['onApplyWindowInsets'](https://developer.android.com/training/wearables/watch-faces/issues.html#ScreenShape),它可以很容易地獲得那裏的屏幕形狀 - 並相應地擴大適當的佈局。還有一個關於[使用API​​ 23的圓形標識符爲Android Wear的圓形屏幕打造精美]的官方博客文章(https://android-developers.googleblog.com/2016/04/build-beautifully-for-android-wear。 HTML)。希望這可以幫助 –

+0

@VadimKotov我使用Android Studio 2.3.1 – Vino

回答

0

我使用Android Studio的一個框架項目解決了這個問題。然後根據需要修改代碼。當我們打開一個新項目時,我不確定如何默認這樣做。