2011-02-06 8 views
0

これで、Javaファイルの内部にレイアウトを作成して、そのJavaファイルをメインアクティビティに呼びたいと思います。私はこれについてどうやって行くのですか?レイアウトfrom Java android sdk

何か助けていただければ幸いです。

-thanks クリスチャン

のonCreateで

答えて

0

LayoutSample.java

public class LayoutSampler extends Activity { 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(new SampleLayoutDemo(this)); 
} 
} 

SampleLayoutDemo

class SampleLayoutDemo extends LinearLayout { 

public SampleLayoutDemo(Context context) { 
    super(context); 

    TextView view = new TextView(context); 
    view.setText("Sample"); 
    view.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); 
    addView(view); 
    setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); 
} 

} 

レイアウトを拡張し、活性setContentView()メソッドレイアウトを呼び出してクラスを作成します。

+0

SampleLayoutDemoがLinearLayoutなどの既存のViewGroupをサブクラス化することを意味しますか?そうでなければ、スーパー(コンテキスト)もaddView(ビュー)も意味をなさないからです。 –

+0

それは意味がある私はこれを試してみましょう。ありがとう – Christian

0

あなたが言う:

myView = new MyView(this); 
setContentView(myView); 
myView.requestFocus(); 

は、Javaファイルで、その後、独自のグラフィックスを描画する場合は、書く:

public class MyView extends View{ 

    public MyView(Context context){ 
     super(context); 

    } 

    @Override 
    public void onDraw(Canvas canvas){ 

    } 
} 

あなたが設定することもできそのMyViewクラスはLinearLayoutなどを拡張し、myView.addView()を使用してネストされたレイアウトを作成します。

+0

皆さんありがとうございました。これが私が探していたものです。あなたの応答に感謝します。 – Christian

0

「私のアクティビティでLinearLayoutやその他の既存のViewGroupを使用し、XMLファイルを使用せずにそのビューにビューを追加したい」という質問を理解しています。これは正しいです?あなたがカスタムビューをしたい場合は、ChristianBはすでに基本を述べています。カスタムレイアウトは非常に難しいので、既存のビューグループをサブクラス化することをお勧めします。

あなたの質問についての私の仮定が正しいのであれば、あなたがあなたの活動にビューを作成します。

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    LinearLayout layout = new LinearLayout (this); 
    TextView helloText = new TextView(this); 
    helloText.setText("Hello World"); 
    layout.addView(helloText); 
    setContentView(layout); 
} 

あなたは他のどののViewGroupのためのLinearLayoutを交換、または完全のViewGroupをスキップして、単一の「フルスクリーン」を追加することができますビュー。

+0

はいこれは良い答えです。それはまあまあです。それはまさに私が探しているものです。お手伝いありがとう。 – Christian

+0

クリスチャン:あなたの質問に答えるならば、答えを受け入れることを覚えておいてください。また、あなたが良い答えをアップアップする必要があります(必ずしも受け入れられた答えではありません)。 –