2014-02-23 65 views
0

我有一個自定義類。這很好。如何在視圖上膨脹Costum視圖

public class FocusGameView extends SurfaceView implements Runnable 

在活動本身我想把「FocusGameView」對,我已經對XML文件創建的視圖。

所以我試圖使用「膨脹」是這樣的:

public class FocusGame extends Activity { 

    FocusGameView fgv; 
    View v; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     fgv= new FocusGameView(this); 

     v=(View) findViewById(R.id.frame_focus_game); 

     LayoutInflater mInflater; 
     mInflater = LayoutInflater.from(fgv.getContext()); 

     v = mInflater.inflate(R.layout.activity_focus_game, null); 


     setContentView(R.layout.activity_focus_game); 
} 

此代碼的結果是開放的活性和設置佈局。而不將自定義視圖放在視圖本身上。

我真的希望你能幫助我。

在此先感謝;

Yaniv。

回答

1

只能添加一個視圖視圖組,而不是一個視圖,所以讓我們像您的視圖V是一個RelativeLayout的:

公共類FocusGame延伸活動{

FocusGameView fgv; 
RelativeLayout v; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_focus_game); 

    v=(View)findViewById(R.id.frame_focus_game); 

    fgv= new FocusGameView(this); 
    v.addView(fgv); //You only need to add the view to a parent to make it appear 
} 
+0

不幸的是,它不工作。 通過調試測試,我可以看到有一個問題行:v.addView(); 這是寫有一個致命的例外。 – YanivGK

+0

這一切都取決於什麼樣的視圖R.id.frame_focus_game – nunoh123

+0

對不起,我測試了代碼和這一行setContentView(R.layout.activity_focus_game);需要在super.contructor之後,以便編譯器知道在哪裏查找我們正在搜索的視圖。 – nunoh123