2013-05-13 2 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" />  

Вы хотите заменить fill_parent с match_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

Если вы хотите, нет. будет отображаться как кнопки сделать 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> 

Также для справки JAVA вы можете сделать 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 
    } 
}); 
+0

Поскольку вы скопировали, что Java-код из моего ответа он не будет работать для XML-ответа. Вы можете посмотреть на это. – TronicZomB

+0

Yeah ... right dude :) –

+0

Мои кнопки все еще находятся в списке, идущем сверху вниз, я пытаюсь заставить их быть как настоящий калькулятор, так что один рядом друг с другом. Таким образом, по 3 в каждой строке, а затем оставляют место для putt других кнопок. Как я могу это сделать? – destroted

Смежные вопросы