2011-09-16 2 views
3

次のコードを実行しようとするとエラーが発生します。エミュレータからこのエラーメッセージが表示され、アプリケーションが強制終了します。 アプリケーションが予期せず停止しました。どうしたの?Android:Layout.addView()が機能しない

import edu.chl.dat255.bluebanana.R; 
import android.app.Activity; 
import android.os.Bundle; 
import android.widget.LinearLayout; 
import android.widget.TextView; 

public class ProMan extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     LinearLayout layout = (LinearLayout) findViewById(R.layout.main); 

     TextView t = new TextView(getApplicationContext()); 
     t.setText("Hello world"); 
     layout.addView(t); 
    } 
} 
+0

完全な例外エラーを投稿してください。 アプリケーションが予期せず停止しましたは、ほとんどすべてに使用される一般的なフレーズです。 – DeeV

+0

私はポップアップ以外のエラーメッセージを見つける方法がわかりません。コンソールには何も書き込まれません。 「申し訳ありません!アプリケーションBlue Banana(プロセスedu.chl.dat255.bluebanana)が予期せず停止しました。もう一度やり直してください」 – Incinerator

+0

詳細なエラーメッセージはLogCatで入手できます。 Eclipseの場合は、右上の「DDMS」ボタンをクリックすると表示されます(最初に矢印をクリックする必要があるかもしれません)。 – DeeV

答えて

7
LinearLayout layout = (LinearLayout) findViewById(R.id.mainLayout); 

In your xml file main xml layout android:id="@+id/mainLayout" 
+0

ありがとうございます!これは問題を解決しました! =) – Incinerator

0

「TextView」に関するレイアウト情報を提供する必要があります。レイアウトの幅とレイアウトの高さを設定する必要があります。以下のコードを参照してください。

LinearLayout.LayoutParams params = 
    new LinearLayout.LayoutParams( 
     ViewGroup.LayoutParams.WRAP_CONTENT, 
     ViewGroup.LayoutParams.WRAP_CONTENT, 0.0F); 
t.setLayoutParams(tvParams); 

layout.addView(t); 
2

あなたは

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:id="@+id/mainLayout"> 

ようmain.xmlであなたのルートのLinearLayoutのIDを設定して、代わりにfindViewById(R.layoutの

としてそれを参照する必要があります。メイン);