![](/img/trans.png)
[英]App crashes with exception before Activity.onCreate() 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.