2011-07-28 5 views
0

私はFragmentActivityを拡張したアクティビティを持っています(元はアクティビティを拡張しましたが、これを変更しました - 理由はそれほど重要ではありませんが、 。表示される情報の中には、特定の変数によって異なりますので、この情報を保持するためにアクティビティのレイアウトxmlにLinearLayoutがあり、このクラスからプログラムで追加できます。これは正常に動作するために使用されていましたが、現在動作を停止していますが、理由がわかりません。ここでFragmentActivityにプログラムでビューを追加することは機能していません

は、ファイルからの抜粋です:

public class FriendProfile extends FragmentActivity { 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.friendprofile); 

     Intent intent = getIntent(); 
     userData = (ArrayList<String>)intent.getSerializableExtra("userData"); 
     String status = userData.get(4).trim(); 

     LinearLayout extras = (LinearLayout)findViewById(R.id.friendextra); 
     LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 

     if(status.equals("requester")) { 
      Log.v(TAG, "requester"); 
      TextView view = new TextView(this); 
      view.setText(R.string.requestpending); 
      view.setLayoutParams(params); 
      view.setGravity(Gravity.CENTER); 
      extras.addView(view); 
     } 
    } 
} 

そしてfriendprofile.xmlファイルからの抜粋:

<?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/friendextra" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:orientation="vertical" > 
    </LinearLayout> 

logcatが面白い何も表示されません - それは間違いなく場合に入りますログは 'requester'を出力しますが、textviewは表示されないため、ブロックします。ステータスにはいくつかの値があり、それぞれがレイアウトに異なるコンポーネントを追加しますが、動作するものはありません。アプリケーションがクラッシュしたり、コンポーネントが表示されないだけです。誰も助けることができますか?

+0

私はフラグメントで同じことを試しましたが、同じ問題が発生しました。ifステートメントは実行されますが、ビューは表示されません。 – Pikaling

+0

また、別のFragmentActivityビューを追加しているところが問題なので、私はそれが問題だとは思わない – Pikaling

答えて

0

私は最終的に問題の原因を追跡しました - friendprofile.xmlファイルにLinearLayoutについてのTableLayoutがあり、その高さがfill_parentに設定されていました。 LinearLayoutは正しく更新されましたが、画面外でした。私は、TableLayoutの高さをwrap_contentに変更し、それが問題の半分を解決しました。

私はまだテキストを表示することができませんでしたので、私はLinearLayoutに空のテキストビューを置き、プログラムでテキストを設定して、これはうまくいきました。

関連する問題