2016-05-24 4 views
0

私のアクティビティにTextViewを動的に追加しようとしていますが、アプリケーションを実行するときに表示されません。エラーはなく、アプリケーションはクラッシュしませんが、TextViewは表示されません。私のJavaクラスはAppCompatActivtyを継承しています。アクティビティの拡張に変更するとコードが機能し、TextViewが表示されます。私の質問は、次のコードはなぜAppCompatActivityではなくActivityに対して機能するのでしょうか?JavaクラスがAppCompatActivityを継承しているときにTextViewを動的に追加できない

私のJavaクラスFormActivty.java

import android.os.Bundle; 
import android.os.PersistableBundle; 
import android.support.v7.app.AppCompatActivity; 
import android.widget.LinearLayout; 
import android.widget.TextView; 

public class FormActivity extends AppCompatActivity { 

@Override 
public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) { 
    super.onCreate(savedInstanceState, persistentState); 
    setContentView(R.layout.activity_form); 
    LinearLayout linearLayout = (LinearLayout) findViewById(R.id.container); 

    TextView textView = new TextView(this); 
    textView.setText("Hello world"); 
    textView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT)); 

    linearLayout.addView(textView); 
} 
} 

マイXMLのactivity_form.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:id="@+id/formLayout"> 
<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/container" 
    android:orientation="vertical"></LinearLayout> 
</LinearLayout> 
+0

これを見てください:http://stackoverflow.com/questions/6216547/android-dynamically-add-views-into-view –

答えて

0

、私はなぜこのような場合はわからないが、私はのonCreateメソッドからPersistableBundle persistentStateを削除する場合それは動作します。私のJavaクラスは次のようになります

import android.os.Bundle; 
import android.os.PersistableBundle; 
import android.support.v7.app.AppCompatActivity; 
import android.widget.LinearLayout; 
import android.widget.TextView; 

public class FormActivity extends AppCompatActivity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_form); 
     LinearLayout linearLayout = (LinearLayout) findViewById(R.id.container); 

     TextView textView = new TextView(this); 
     textView.setText("Hello world"); 
     textView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT)); 

     linearLayout.addView(textView); 
    } 
} 
関連する問題