2016-05-06 7 views
0

私はAndroid開発の新旧です。 XMLなしで完全にJavaで書かれた単純なアクティビティを表示しようとしていますが、クラッシュします。私は間違って何をしていますか?ここでは、コードは次のようになります。XMLクラッシュによるJavaでのAndroidのアクティビティ

public class TestActivity extends Activity 
{ 
    @Override 
    public void onCreate(Bundle savedinstancestate) 
    { 
     super.onCreate(savedinstancestate); 
     RelativeLayout thislayout = new RelativeLayout(this); 
     RelativeLayout.LayoutParams TextViewParams = new RelativeLayout.LayoutParams(
      RelativeLayout.LayoutParams.WRAP_CONTENT, 
      RelativeLayout.LayoutParams.WRAP_CONTENT); 
     TextViewParams.addRule(RelativeLayout.CENTER_HORIZONTAL); 
     TextViewParams.addRule(RelativeLayout.CENTER_VERTICAL); 
     TextView outputtext = new TextView(this); 
     outputtext.setText("Poop!"); 
     thislayout.addView(outputtext, TextViewParams); 
     setContentView(thislayout); 
    } 
} 
+1

エラーログを追加できますか? –

+0

私はちょうど "残念なことに、TestJavaLayoutが停止しました"というエラーが表示されます。私はAndroid StudioのエミュレーションをサポートしていないAMDプロセッサを持っているので、エミュレータでこれをテストすることはできません – user6191667

+0

あなたのスタジオでlogcatを探してください。あなたが間違っているところであなたを見せてくれます。 –

答えて

1

オーケーあなたはTextViewに設定するLayoutParamsを初期化しますがされていません。また、親のレイアウトにLayoutParams、つまりRelativeLayoutを定義する必要があります。

私はあなたのコードをテストし、いくつかの変更を加えました。 試みは、この

@Override 
public void onCreate(Bundle savedinstancestate) { 
    super.onCreate(savedinstancestate); 

    // setting RelativeLayout Params 
    RelativeLayout thislayout = new RelativeLayout(this); 
    LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT, 
      LayoutParams.MATCH_PARENT); 
    thislayout.setLayoutParams(params); 

    // setting TextView Params 
    TextView outputtext = new TextView(this); 
    RelativeLayout.LayoutParams TextViewParams = new RelativeLayout.LayoutParams(
      RelativeLayout.LayoutParams.WRAP_CONTENT, 
      RelativeLayout.LayoutParams.WRAP_CONTENT); 
    TextViewParams.addRule(RelativeLayout.CENTER_HORIZONTAL); 
    TextViewParams.addRule(RelativeLayout.CENTER_VERTICAL); 
    outputtext.setLayoutParams(TextViewParams); 
    outputtext.setText("Poop!"); 

    thislayout.addView(outputtext); 
    setContentView(thislayout); 
} 

が、それはあなたを助けることを願って行うのですか。

0

あなたは、このようにコードを変更することができます。

public class Main2Activity extends AppCompatActivity { 



    @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      // setContentView(R.layout.activity_main2); 
      RelativeLayout relativeLayout=new RelativeLayout(this); 
      TextView programmedTextView=new TextView(this); 
      programmedTextView.setText("Setting my textView programmatically"); 
      programmedTextView.setTextSize(20); 
      relativeLayout.addView(programmedTextView); 
      this.setContentView(relativeLayout,new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); 
     } 
    } 
0

は、トピックを書くことで正しいこと、明らかにあなたは「NO XMLがクラッシュしてJavaでのAndroidの活動」を意味します。

第二には、あなたが同じように、マニフェストファイルにあなたの活動を記述するのを忘れているようだ:

少なくとも
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="io.github.d2edev.myapplication"> 

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <activity 
     android:name=".main.TestActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 

</manifest> 

、これは私のために働きました。良い一日を!

関連する問題