2013-12-12 179 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

編碼愉快!