2011-02-07 8 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

あなたは

を使用してレイアウトを膨らませることができます10
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

+0

同じアクティビティで複数のビューを使用する元の問題が解決されました。ありがとうございました。 – hsbgowd

関連する問題