web-dev-qa-db-ja.com

Android widget:ボタンのテキストを変更する方法

XMLファイルではなくコード内でAndroidボタンウィジェットのテキストを変更するにはどうすればよいですか?

31
Skatephone

ボタンのテキストを次のように変更できました。

import Android.widget.RemoteViews;

//grab the layout, then set the text of the Button called R.id.Counter:
RemoteViews remoteViews = new RemoteViews(getPackageName(), R.layout.my_layout);
remoteViews.setTextViewText(R.id.Counter, "Set button text here");
20
Skatephone

setText()メソッドを使用できます。例:

_import Android.widget.Button;

Button p1_button = (Button)findViewById(R.id.Player1);
p1_button.setText("Some text");
_

また、参照のポイントとして、 ButtonTextView を拡張するため、通常のTextViewと同じようにsetText()を使用できる理由です。

44
eldarerathis

これはとても簡単です

Button btn = (Button) findViewById(R.id.btn);
btn.setText("MyText");
1
Jai

Layout.xmlには、次のようにビューとして定義されたボタンがありました。

_final View myButton = findViewById(R.id.button1);
_

ボタンとしても定義するまで、テキストを変更できませんでした。

_final View vButton = findViewById(R.id.button1);
final Button bButton = (Button) findViewById(R.id.button1);
_

テキストを変更する必要があるときはbButton.setText("Some Text");を使用し、ビューを変更したいときは_vButton._を使用しました

うまくいきました!

1
bob

これはトピックから外れているかもしれませんが、ボタンテキストのフォントを正確に変更する方法に苦労している人(私の場合は、Skatephoneの答えが私を助けてくれました)は、ここで私がやった方法です(ボタンデザインモードを作成した場合):

最初に、ボタンの文字列名を「変換」する必要があります(説明するのは間違っていますが、簡単です)からJava)し、前述のコードをMainActivity.Javaに貼り付けます

重要! OnCreateメソッドの下にコードを配置します!

import Android.widget.RemoteViews;

RemoteViews remoteViews = new RemoteViews(getPackageName(), R.layout.my_layout);
remoteViews.setTextViewText(R.id.Counter, "Set button text here");

留意してください:

my_layoutは、ボタンがあるxmlファイルで置き換える必要があります

CounterはボタンのID名に置き換える必要があります("@+id/ButtonName"

ボタンのテキストを変更する場合は、"Set button text here"の代わりにテキストを挿入するだけです

フォントを変更する部分がここにあります:

XmlからJavaに「変換」したので、TextViewのTypefaceメソッドを設定できます。上記の直前のコードの下に次のコードを正確に貼り付けます

TextView txt = (TextView) findViewById(R.id.text_your_text_view_id);
        Typeface font = Typeface.createFromAsset(getAssets(), "fonts/MyFontName.ttf");
        txt.setTypeface(font);

text_your_text_view_idの代わりにボタンのID名(以前のコードのように)を置き、MyFontName.ttfの代わりに希望のフォントを置きます

警告!これは、目的のフォントが既にasset/fontフォルダーに配置されていることを前提としています。例えばasset/fonts/MyFontName.ttf

0

javaを使用した交換を使用します。 setText = "..."、クラスJavaの場合、実装にはさらに多くのメソッドがあります。

    //button fechar
    btnclose.setEnabled(false);
    btnclose.setText("FECHADO");
    View.OnClickListener close = new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if (btnclose.isClickable()) {
                btnOpen.setEnabled(true);
                btnOpen.setText("ABRIR");
                btnclose.setEnabled(false);
                btnclose.setText("FECHADO");
            } else {
                btnOpen.setEnabled(false);
                btnOpen.setText("ABERTO");
                btnclose.setEnabled(true);
                btnclose.setText("FECHAR");
            }

            Toast.makeText(getActivity(), "FECHADO", Toast.LENGTH_SHORT).show();
        }
    };

    btnclose.setOnClickListener(close); 
0
Tuerê Pinto