2012-03-28 8 views
2

私はCategoryと呼ばれるObject(beans)を使用します。 これらのカテゴリオブジェクトには、カテゴリオブジェクトのリストを含む一連の属性が含まれています。ルートカテゴリのリストであり、各リストの1ので、行くにはどのように多くのカテゴリーオブジェクトでどのように多くのカテゴリー:1つのアクティビティ、多くの内容

public class Category { 
    private List<Category> categoryList; 
    ... 
    private Strings anAttribute; 
} 

は、コンパイル時に、私は意味、ルートCategoryオブジェクトの深さを知りませんに。私は実際にXMLファイルを解析することによってルートカテゴリオブジェクトを取得します。

私にはアクティビティがあり、再開するために一連のボタンが表示されます。各ボタンはルートカテゴリオブジェクトを表します(それぞれXMLファイルからのものです)。これらのボタンの1つをクリックすると、一連のボタン(リスト内のカテゴリごとのボタン)を表示する新しい「ウィンドウ」が表示され、このボタンのそれぞれは、一連の新しい「ウィンドウ」を再帰的に示しますボタン...

表示したいコンテンツにXMLファイルを使用したいと思っているのですが、どうすればいいですか?私は、カテゴリごとのアクティビティを(ダイナミックに)作成するのではないと思います。

ありがとうございました。

+0

はJavaBeanは自身のリストを持つことができますか?また、複数のアクティビティを作成したくない場合は、複数のxmlビューを作成して必要なときにそれらを膨張させることができます – Andreas

答えて

3

あなたは次のような構造を使用することができます。

private LinearLayout myLayout; 

protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.something); 

    myLayout = (LinearLayout) findViewById(R.id.my_layout); 
    createBtns(loadFirstCategory()); 
} 

private void createBtns(Category c) 
{ 
    List<Category> c_list = c.getCategoryList(); 
    for (int i=0; i<c_list.size(); i++) 
    { 
     Button btn = new Button(this); 
     btn.setText(c_list.get(i).getName()); 
     myLayout.addView(btn); 

     btn.setOnClickListener(new OnClickListener() { 
      public void onClick() 
      { 
       myLayout.removeAll(); 
       createBtns(c_list.get(i)); 
      } 
     }); 
    } 
} 
+0

createBtns()の各ボタンは、intent.setExtra(c) ;そのアクティビティは現在表示されているカテゴリを引数として取得します。これにより、バックキーが正しく機能するようになります。 – damaxxed

関連する問題