如何用java而不是xml编码相对布局?
我想使用Java代码而不是XML文件来运行应用程序。如何用java而不是xml编码相对布局?,java,android,eclipse,android-layout,android-relativelayout,Java,Android,Eclipse,Android Layout,Android Relativelayout,我想使用Java代码而不是XML文件来运行应用程序。 应用程序在我的手机/模拟器上不工作,每次都会崩溃 代码如下所示: package com.nikhil.relativelayoutjavacode; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem;
应用程序在我的手机/模拟器上不工作,每次都会崩溃 代码如下所示:
package com.nikhil.relativelayoutjavacode;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RelativeLayout;
import android.widget.RelativeLayout.LayoutParams;
import android.widget.TextView;
public class MainActivity extends ActionBarActivity {
RelativeLayout main;
EditText userNameValue, passwordValue;
TextView message, userName, password;
LayoutParams messageDimensions;
Button login;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
init();
createMessageTextView();
main.addView(message, messageDimensions);
setContentView(main);
}
private void init() {
// TODO Auto-generated method stub
main = new RelativeLayout(this);
LayoutParams mainDimensions = new LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
main.setLayoutParams(mainDimensions);
userNameValue = new EditText(this);
passwordValue = new EditText(this);
message = new TextView(this);
userName = new TextView(this);
password = new TextView(this);
login = new Button(this);
}
private void createMessageTextView() {
LayoutParams messageDimensions = new LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
messageDimensions.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
message.setText("Please Login First");
message.setLayoutParams(messageDimensions);
}
}
在这里:
messageDimensions
为null
,因为在createMessageTextView()
方法中创建名为messageDimensions
的LayoutParams
对象的新对象,而不是使用在类级别声明的messageDimensions
对象
因此,请使用:
messageDimensions = new LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
messageDimensions.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
在
createMessageTextView()
方法中。检查您的日志并将其发布在此处我不知道我是如何错过了这一简单的要点。但无论如何,谢谢!!
messageDimensions = new LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
messageDimensions.addRule(RelativeLayout.ALIGN_PARENT_LEFT);