XMLファイルではなくコード内でAndroidボタンウィジェットのテキストを変更するにはどうすればよいですか?
ボタンのテキストを次のように変更できました。
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");
これはとても簡単です
Button btn = (Button) findViewById(R.id.btn);
btn.setText("MyText");
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.
_を使用しました
うまくいきました!
これはトピックから外れているかもしれませんが、ボタンテキストのフォントを正確に変更する方法に苦労している人(私の場合は、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
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);