按下按钮时无法更改文本大小

时间:2014-03-26 11:31:53

标签: android xml button layout text-size

这是我在 main_activity.xml 中的布局:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:weightSum="4" >
    <EditText
        android:id="@+id/result_id"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="none"
        android:layout_weight="1" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="3"
        android:orientation="vertical"
        android:weightSum="4" >
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:weightSum="4"
            android:layout_weight="1"
            android:orientation="horizontal" >
           <Button
                android:id="@+id/Btn7_id"
                style="@style/ButtonTextWhite"
                android:textColor="@drawable/buttontextcolorwhite"
                android:background="@drawable/custombutton"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:text="7"
                android:layout_weight="1"
                android:onClick="btn7Clicked" />
            <Button
                android:id="@+id/Btn8_id"
                style="@style/ButtonTextWhite"
                android:background="@drawable/custombutton"
                android:textColor="@drawable/buttontextcolorwhite"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:text="8"
                android:layout_weight="1"
                android:onClick="btn8Clicked" />
            <Button
                android:id="@+id/Btn9_id"
                style="@style/ButtonTextWhite"
                android:background="@drawable/custombutton"
                android:textColor="@drawable/buttontextcolorwhite"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:text="9"
                android:layout_weight="1"
                android:onClick="btn9Clicked" />
            <Button
                android:id="@+id/Btnclear_id"
                style="@style/ButtonTextWhite"
                android:background="@drawable/custombutton"
                android:textColor="@drawable/buttontextcolorwhite"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:text="C"
                android:layout_weight="1"
                android:onClick="btnclearClicked" />
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:weightSum="4"
            android:layout_weight="1"
            android:orientation="horizontal" >
            <Button
                android:id="@+id/Btn4_id"
                style="@style/ButtonTextWhite"
                android:background="@drawable/custombutton"
                android:textColor="@drawable/buttontextcolorwhite"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:text="4"
                android:layout_weight="1"
                android:onClick="btn4Clicked" />
            <Button
                android:id="@+id/Btn5_id"
                style="@style/ButtonTextWhite"
                android:background="@drawable/custombutton"
                android:textColor="@drawable/buttontextcolorwhite"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:text="5"
                android:layout_weight="1"
                android:onClick="btn5Clicked" />
            <Button
                android:id="@+id/Btn6_id"
                style="@style/ButtonTextWhite"
                android:background="@drawable/custombutton"
                android:textColor="@drawable/buttontextcolorwhite"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:text="6"
                android:layout_weight="1"
                android:onClick="btn6Clicked" />
            <Button
                android:id="@+id/Btnplus_id"
                style="@style/ButtonTextWhite"
                android:background="@drawable/custombutton"
                android:textColor="@drawable/buttontextcolorwhite"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:text="+"
                android:layout_weight="1"
                android:onClick="btnplusClicked" />
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:weightSum="4"
            android:layout_weight="1"
            android:orientation="horizontal" >
             <Button
                android:id="@+id/Btn1_id"
                style="@style/ButtonTextWhite"
                android:background="@drawable/custombutton"
                android:textColor="@drawable/buttontextcolorwhite"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:text="1"
                android:layout_weight="1"
                android:onClick="btn1Clicked" />
            <Button
                android:id="@+id/Btn2_id"
                style="@style/ButtonTextWhite"
                android:background="@drawable/custombutton"
                android:textColor="@drawable/buttontextcolorwhite"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:text="2"
                android:layout_weight="1"
                android:onClick="btn2Clicked" />
            <Button
                android:id="@+id/Btn3_id"
                style="@style/ButtonTextWhite"
                android:background="@drawable/custombutton"
                android:textColor="@drawable/buttontextcolorwhite"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:text="3"
                android:layout_weight="1"
                android:onClick="btn3Clicked" />

            <Button
                android:id="@+id/Btnminus_id"
                style="@style/ButtonTextWhite"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@drawable/custombutton"
                android:textColor="@drawable/buttontextcolorwhite"
                android:onClick="btnminusClicked"
                android:text="-" />

        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:weightSum="3"
            android:layout_weight="1"
            android:orientation="horizontal" >
            <Button
                android:id="@+id/Btnequal_id"
                style="@style/ButtonTextWhite"
                android:background="@drawable/custombutton"
                android:textColor="@drawable/buttontextcolorwhite"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:text="="
                android:layout_weight="1"
                android:onClick="btnequalClicked" />

            <Button
                android:id="@+id/Btnmulti_id"
                style="@style/ButtonTextWhite"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@drawable/custombutton"
                android:textColor="@drawable/buttontextcolorwhite"
                android:onClick="btnmultiClicked"
                android:text="*" />

            <Button
                android:id="@+id/Btndivide_id"
                style="@style/ButtonTextWhite"
                android:background="@drawable/custombutton"
                android:textColor="@drawable/buttontextcolorwhite"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:onClick="btndivideClicked"
                android:text="/"
                android:layout_weight="1" /> 
        </LinearLayout>
    </LinearLayout>
</LinearLayout>

http://postimg.org/image/72zhaeai3/28339a2a/

我使用不同外观的图层列表创建了自定义按钮,用于不同的状态( res / drawable / unpressedbutton.xml和res / drawable / pressedbutton.xml )。这是 res / drawable / custombutton.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="false" android:drawable="@drawable/unpressedbutton">

    </item>
    <item android:state_pressed="true" android:drawable="@drawable/pressedbutton">

    </item>
</selector>

然后,我以相同的方式处理默认和按下状态之间的文本颜色更改。这是 res / drawable / buttontextcolorwhite.xml

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:color="#aaaaaa"/> <!-- pressed -->

    <item android:state_pressed="false" android:color="#ffffff"/> <!-- default -->
</selector>

但是当按下按钮时使用相同的方法减少文本大小时,它根本不起作用:

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:textSize="10"/> <!-- pressed -->

    <item android:state_pressed="false" android:textSize="12"/> <!-- default -->
</selector>

我怎样才能做到这一点?


我已将相应的代码更改为Drakora的答案:

package com.example.simplecalculator;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;


public class MainActivity extends Activity {

    public String str ="";
    Character op = 'q';
    int i,num,numtemp;
    EditText showResult;
    Button btnChangeTextSize;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        this.showResult = (EditText)findViewById(R.id.result_id);

        final EditText text = new EditText(this);

        this.btnChangeTextSize = (Button) findViewById(R.id.Btn1_id);
        this.btnChangeTextSize.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                text.setTextSize(6);   
            }
        });

    }
    public void btn1Clicked(View v){
        insert(1);
    }

...

但它不起作用......按钮实际上不再起作用了吗?

enter image description here

1 个答案:

答案 0 :(得分:0)

我建议以编程方式而不是xml文件中尝试此方法。在您的活动类中,初始化您想要更改文本大小的EditText并添加onlick方法,如此

EditText text = new EditText(this);

    btnChangeTextSize = (Button) findViewById(R.id.Btn1_id);
    btnChangeTextSize.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
        text.setTextSize(10);   
        }
    });

实现此代码时,请务必按ctrl + shift + o导入您需要的必要类。

相关问题