如何创建更改背景和字体文本的按钮?

时间:2014-01-30 23:59:16

标签: java android xml button fonts

大家好,我对Android编程完全陌生,我想学习的一件事是如何根据按钮按下来触发事件。到目前为止,我只设法创建一个按钮,但我不知道如何创建事件,更重要的是我必须修改哪些文件?

activity_main.xml中:

<Button android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button_id"
        android:text="@string/font_color"
        android:onClick="toggleChange"/>

我最熟悉文件activity_main.xml和mainActivity.java,并在main activity.java中创建了一个函数:

public void toggleChange(){
        //not sure what goes here
    }

我不确定在函数内部放置什么,我也不完全确定java是否需要。我是否需要更改其他一些我不知道的XML文件?谢谢你的帮助。

public boolean onCreateOptionsMenu(Menu menu) {
        final Button button = (Button) findViewById(R.id.button_id);
        button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
              // Perform action on click
              // Use attributes of View or cast to Button
              // to change background / text
              //v.setText ("Hello Blu");
         }
         });
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

2 个答案:

答案 0 :(得分:0)

可能更常见的方法是

final Button button = (Button) findViewById(R.id.button_id);
        button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
              // Perform action on click
              // Use attributes of View or cast to Button
              // to change background / text
              v.setText ("Hello Blu");
         }
         });

答案 1 :(得分:0)

在xml中实现TextView并在java中进行设置。 XML:

<TextView
                android:id="@+id/text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/> 

在你的java上设置它:

 private TextView mText;

        mText = (TextView) findViewById(R.id.text);
        Button mButton 

= (Button) mRootView.findViewById(R.id. button_id);

            mButton.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View arg0) {
                mText.setText("whatever you like"); 

                }
            });