2011-08-10 23 views
1

私は、Activityクラスから派生したXMLパーサを持っており、XMLからButtonを解析しています。 Android Button APIを使用してButtonを作成すると、アクティビティに表示されます。しかし、ボタン属性を取得し、そのクラスからボタンを表示するための自分のクラスを作成すると、表示されません。私が作成しているこの独自のクラスは、LinearLayoutを拡張して表示できません。XMLを解析した後にボタンが表示されない

私はGuiButtonクラスのコンストラクタを必須のパラメータで呼び出しています。 下記のコードをご覧ください。

public class GuiButton extends LinearLayout{ 

String label; 
int type; 
public String reqType; 
public String context; 
/** 
* Network message for this button 
*/ 
public String netMsg;  
/** 
* network image id for this button 
*/ 
public String networkImageID; 
public String id; 

Button btn; 


public GuiButton(Context cntxt,String label,int type,String requestType,String netImgID, String id,String context,int priority,int commandType) { 
    super(cntxt); 



    this.setOrientation(VERTICAL);   
    btn = new Button(cntxt); 
    btn.setText(label); 
    addView(btn,new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));    
} 

アクティビティでこのボタンを表示するにはどうすればよいですか?この問題を解決するのを手伝ってください。

+0

怒鳴る述べたように、あなたのonCreateメソッドを設定していますあなたsetContentView(新しいGuiButton(...))?または線形レイアウトが子ビューですか?後者の場合、GuiButtonのLayoutParams(btnではなく)に問題がある可能性があります。 –

答えて

1

コンストラクタ

public GuiButton(Context cntxt, String label) 

public GuiButton(Context cntxt,String label,int type,String requestType,String netImgID, String id,String context,int priority,int commandType) 

を交換し、

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    LinearLayout l = (LinearLayout)findViewById(R.id.linear); 
    GuiButton gb = new GuiButton(this,"Hello"); 
    l.addView(gb); 
} 
関連する問題