2013-05-13 83 views
0

我想爲android做一個計算器。我已經開始使用XML來製作按鈕等,然後我將在java中引用他們的數學。我很難讓它們成爲按鈕而不是線條。我明白重量的總和,但我甚至不知道這是我應該用於這種事情的東西。我的代碼如下:(代碼已更新)Android XML按鈕

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 

    <TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:text="@string/total" 
    android:textSize="45sp" 
    android:id="@+id/calcDisplay" 
    /> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
    > 

    <Button 
     android:id="@+id/Number1" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:text="1" 

    />   

    <Button 
     android:id="@+id/Number2" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:text="2" 

    /> 

    <Button 
     android:id="@+id/Number3" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 

    /> 

    </LinearLayout> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal"    
    > 

    <Button 
     android:id="@+id/Number4" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 

    />   

    <Button 
     android:id="@+id/Number5" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 


    />   

    <Button 
     android:id="@+id/Number6" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 

    /> 

    </LinearLayout> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
    > 

    <Button 
     android:id="@+id/Number7" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 


    /> 

    <Button 
     android:id="@+id/Number8" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 

    /> 

    <Button 
     android:id="@+id/Number9" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 

    /> 

    </LinearLayout> 

    <Button 
     android:id="@+id/number0" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:layout_gravity="center_horizontal" 

     /> 


</LinearLayout> 

回答

0

嘗試是這樣的:

<Button android:id="@+id/number1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center" />  

你會想match_parent更換fill_parent,除非你是針對API 7或更低。如果是API 8或更高版本,請使用match_parent。此外,您還需要將android:text="My String Here"添加到每個按鈕,否則wrap_content因爲沒有什麼可以「換行」,所以它們只不過是一行。

然後在Java中,你可以做你的onCreate()如下:

Button number1 = (Button) findViewById(R.id.number1); 
number1.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) { 
     //Do action stuff!!! 
    } 
}); 

我也會在你的XML使用較低的情況下,有時大寫會引起問題。

0

如果你想要nos。如按鈕做這個 - >

<?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 

    <TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:text="@string/total" 
    android:textSize="45sp" 
    android:id="@+id/calcDisplay" 
    /> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
    > 
    <Button 
     android:id="@+id/Number1" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 


    />   

    <Button 
     android:id="@+id/Number2" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 


    />   

    <Button 
     android:id="@+id/Number3" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 


    /> 
    </LinearLayout>   

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
    > 
    <Button 
     android:id="@+id/Number4" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 


    />   

    <Button 
     android:id="@+id/Number5" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 


    />   

    <Button 
     android:id="@+id/Number6" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 


    />   
    </LinearLayout>  

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
    > 
    <Button 
     android:id="@+id/Number7" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 


    /> 

    <Button 
     android:id="@+id/Number8" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 

    /> 

    <Button 
     android:id="@+id/Number9" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:text="9" 

    /> 
    </LinearLayout> 
    <Button 
     android:id="@+id/number0" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:layout_gravity="center_horizontal" 


     /> 


</LinearLayout> 

也爲JAVA參考,你可以做這個 - >

Button number1 = (Button) findViewById(R.id.Number1); 
number1.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) { 
     //What to do when 1st button is clicked 
    } 
}); 
+0

既然你複製從我的回答是Java代碼不會對您的XML應答工作來顯示。你可能想看看。 – TronicZomB 2013-05-13 17:45:43

+0

是的......右傢伙:) – 2013-05-13 17:46:22

+0

我的按鈕仍然在自上而下的列表中,我試圖讓他們像一個真正的計算器,因此彼此相鄰。所以每行有3個,然後留出空間去推其他按鈕。我會怎麼做? – destroted 2013-05-15 16:20:37