Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用java而不是xml编码相对布局?_Java_Android_Eclipse_Android Layout_Android Relativelayout - Fatal编程技术网

如何用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;

我想使用Java代码而不是XML文件来运行应用程序。
应用程序在我的手机/模拟器上不工作,每次都会崩溃

代码如下所示:

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