2013-05-13 52 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