繁体   English   中英

带有XML的Java中的Android活动崩溃

[英]Android activity in java with XML crashes

我有点像Android开发的新手。 我试图显示一个完全用Java编写的简单活动,但没有XML,但是它崩溃了。 我究竟做错了什么? 这是代码:

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);
    }
}

好的,您正在初始化LayoutParams ,但未将其设置为TextView 而且,您还必须LayoutParams布局(即RelativeLayout定义LayoutParams

我测试了您的代码并进行了一些更改。 尝试做这个

@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);
}

希望它能对您有所帮助。

您可以这样修改代码:

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));
        }
    }

在写作主题上是正确的,显然您的意思是“ Java中的Android活动没有 XML崩溃”。

其次,似乎您忘了在清单文件中描述您的活动,例如:

<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>

至少,这对我有用。 祝你今天愉快!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM