0

我正在尝试为 android 制作计算器。我已经开始使用 XML 来制作按钮等,然后我打算在 java 中引用它们进行数学计算。我无法让它们成为按钮而不是线条。我了解重量总和,但我什至不知道这是否是我应该用于这种事情的。我的代码如下:(代码已更新)

<?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>
4

2 回答 2

0

尝试这样的事情:

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

您将需要替换fill_parentmatch_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 中使用小写,有时大写会导致问题。

于 2013-05-13T17:25:31.880 回答
0

If you want nos. to be displayed as buttons do this->

    <?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>

Also for JAVA reference you can do this->

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
   }
});
于 2013-05-13T17:28:00.387 回答