2013-12-12 137 views
-1

我是一个新来的android编程。我在我的活动中遇到布局问题。我的菜单会出现这样的:android java布局+源代码混淆

enter image description here

,我已经通过源代码做了所有直接布置工作:

enterNameTxt.setText("Enter User Name"); 
enterNameTxt.setY(200); 
enterNameTxt.setX(-600); 

userNameTxt.setY(300); 
userNameTxt.setX(100); 
userNameTxt.setWidth(200); 

enterSpeedTxt.setText("Enter Speed"); 
enterSpeedTxt.setX(-500); 
enterSpeedTxt.setY(100); 

userSpeedTxt.setX(-400); 
userSpeedTxt.setY(700); 
userSpeedTxt.setWidth(200); 

configButton.setWidth(400); 
configButton.setText("Back to Game"); 
configButton.setY(1000); 

,正如你可以看到速度选项甚至不显示在屏幕上。我一直玩setX,setY,setWidth选项,但它一直变得混乱。

直接通过源代码进行布局是错误的吗?

我有两个活动,但只有一个布局XML文件的其中之一。我应该在菜单活动的res/layout部分创建另一个xml文件吗?

我只是当我使用的源代码,当我应该使用布局不明白...提前

感谢

+0

为每个活动分别提供一个XML布局文件。尽可能在XML中定义。 –

+0

感谢您的快速响应! – user2456977

回答

0

这是错误的,直接通过源做布局码?

不,它不是。但是强烈建议您使用xml布局,因为它可以让您在运行前直观地呈现您正在尝试的内容。

我有两个活动,但只有一个布局XML文件的其中之一。我应该在菜单活动的res/layout部分创建另一个xml文件吗?

是的。您必须为应用中的每个活动创建一个xml文件。

我只是当我使用的源代码不明白,当我应该使用布局...

你应该使用xml,你可以尽可能多的。在运行时必须使用Java代码来设置布局属性。例如用数据库或Web服务的文本填充ListView

0

使用此代码在您的Java文件

公共类MainActivity扩展活动{

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    RelativeLayout rl = (RelativeLayout) findViewById(R.id.rl); 

    LinearLayout ll = new LinearLayout(this); 
    LinearLayout.LayoutParams layout_params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); 
    LinearLayout.LayoutParams box_params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, 40); 
    LinearLayout.LayoutParams btn_params = new LinearLayout.LayoutParams(120, 40); 
    ll.setOrientation(LinearLayout.VERTICAL); 
    EditText et1 = new EditText(MainActivity.this); 
    et1.setHint("Enter User name"); 
    EditText et2 = new EditText(MainActivity.this); 
    et2.setHint("Enter speed"); 
    Button btn= new Button(MainActivity.this); 
    btn.setText("Back to Game"); 
    btn.setGravity(Gravity.CENTER_HORIZONTAL); 
    ll.addView(et1, box_params); 
    ll.addView(et2, box_params); 
    ll.addView(btn, btn_params); 
    ll.setGravity(Gravity.CENTER); 
    rl.addView(ll,layout_params); 
} 

}

您将获得所需的输出,但它更喜欢使用XML文件,直到你不”您的UI需要动态更改。使用xml文件很容易维护代码和设计屏幕,如果不需要大的动态更改,则应该使用xml文件。通过Xml文件,您可以通过代码的图形表示来检查不同分辨率的代码。您可以在布局文件夹中创建一个xml文件,并将其链接到您的活动。这很简单,省时,并为您提供更准确的设计... :)请检查屏幕截图,以获取所需设计的动态创建。

enter image description here

编码愉快!