2011-02-07 161 views
0

MainActivity.java:從自定義佈局創建xml佈局。可能嗎?

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     this.setTitle(R.string.app_name); 
     setContentView(new SampleView(this)); 
    } 
} 

SampleView.java:

public class SampleView extends View { 

    @Override 
    protected void onDraw(Canvas canvas) { 
     if (certaincondition = true) { 
      //add elements to canvas etc 
     } else { 
      //How do I do the below? The layout is defined in xml. 
      //I do not want to use Intent. Please help me 

      //create a layout from resource R.layout.idAbout and transfer control. 
     } 
    } 
} 

回答

0

使用吹氣佈局:

View newRootViewElement; 
LayoutInflater li = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
newRootViewElement= li.inflate(R.layout.idAbout, null); 
0

可以膨脹的佈局使用

View.inflate(getContext(), R.layout.idAbout, viewParent); 

其中viewParent是一個ViewParent,它將是充氣視圖的父級(可以是null)。

但是你想要做什麼?從onDraw()開始新的活動或修改視圖層次結構有點奇怪。您可能想要將可運行的帖子發佈到Handler,它將在事件循環的下一個循環中執行您想要的操作。要開始一項新活動(例如顯示「關於該應用的」信息),您應該查看Intent課程。

+0

實際問題在這裏描述http://stackoverflow.com/questions/4926478/why-does-the-menu-button-in-the-emulator-show-all-the-activities-of-my-app 。因爲我無法修復它:作爲解決方法,我正在嘗試爲所有視圖使用相同的活動。 – hsbgowd 2011-02-07 21:06:06