質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

checkbox

checkboxは、GUIのエレメントです。また、HTML<input>タグのtype属性で扱われる値を指します。

Q&A

解決済

1回答

930閲覧

Android studio アプリ起動時のみチェックBOXのテキストが表示されない

rockey_7625

総合スコア25

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

checkbox

checkboxは、GUIのエレメントです。また、HTML<input>タグのtype属性で扱われる値を指します。

0グッド

0クリップ

投稿2020/08/09 08:27

どうしてもわからないのでアドバイスください。
チェックboxを作り、チェックされている時は”チェック済”と表示して
チェックされていない時は”未チェックです。”と表示したいのです。
以下コードでビルドしたらとりあえずうまくいったのですが、一つおかしな点がありアプリを起動して最初にチェックBOXがチェック無しで表示されるのですが、その時に”未チェックです。”の文字が表示されないのです。
ただそのあとにチェックを入れる、チェックを外す操作を行うと思惑通りの動きとなります。
最初のアプリ起動時にチェック無しの文字【”未チェックです。”】が表示されないので修正したいのですがどう変更すればいよいか悩んでおります。
申し訳ありませんがアドバイス頂けないでしょうか?
【以下main Activityコード】

final CheckBox chkbox01 = (CheckBox)findViewById(R.id.checkbox01);
chkbox01.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(chkbox01.isChecked() == false){
chkbox01.setText("未チェックです。");
}
else{
chkbox01.setText("チェック済です。");
}
}
});

【以下activity main.xmlコード】

<CheckBox android:id="@+id/checkbox01" android:layout_width="350dp" android:layout_height="30dp" android:layout_marginTop="4dp" android:layout_marginEnd="81dp" android:background="#FFFFFF" app:layout_constraintEnd_toEndOf="@+id/back" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintStart_toStartOf="@+id/view2" app:layout_constraintTop_toBottomOf="@+id/view2" />

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

単純に下記のように、最初に「未チェックです。」と出力する記述を追加するだけは解決になりませんか?

java

1 final CheckBox chkbox01 = (CheckBox) findViewById(R.id.checkbox01); 2 chkbox01.setText("未チェックです。"); // 追加 3 4 chkbox01.setOnClickListener(new View.OnClickListener() { 5 @Override 6 public void onClick(View view) { 7 if (chkbox01.isChecked() == false) { 8 chkbox01.setText("未チェックです。"); 9 } else { 10 chkbox01.setText("チェック済です。"); 11 } 12 } 13 14 });

アプリを起動してチェックを入れてその状態を保持したい

Androidには情報を保存するための機能がいくつかありますが、少量の情報ならばSharedPreferencesを用いればいいでしょう。それを組み込んで作るならばこのような感じすればいいのではないでしょうか。

java

1 @Override 2 protected void onCreate(Bundle savedInstanceState) { 3 super.onCreate(savedInstanceState); 4 setContentView(R.layout.activity_main); 5 6 // SharedPreferencesから読み込み 7 final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); 8 final boolean checked = prefs.getBoolean("chkbox01", false); 9 10 final CheckBox chkbox01 = findViewById(R.id.checkbox01); 11 chkbox01.setChecked(checked); 12 13 // 読み込んだ値に応じて文字列の初期状態をセット 14 if (!checked) { 15 chkbox01.setText("未チェックです。"); 16 } else { 17 chkbox01.setText("チェック済です。"); 18 } 19 20 chkbox01.setOnClickListener(new View.OnClickListener() { 21 @Override 22 public void onClick(View view) { 23 // チェック状態を取得 24 final boolean checked = chkbox01.isChecked(); 25 26 // SharedPreferencesに書き込み 27 SharedPreferences.Editor editor = prefs.edit(); 28 editor.putBoolean("chkbox01", checked); 29 editor.apply(); 30 31 if (!checked) { 32 chkbox01.setText("未チェックです。"); 33 } else { 34 chkbox01.setText("チェック済です。"); 35 } 36 } 37 }); 38 }

SharedPreferencesの詳しい使い方は検索すれば情報がたくさん出てきますので、そちらを参照してください。

投稿2020/08/09 15:11

編集2020/08/10 12:39
keicha_hrs

総合スコア6768

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rockey_7625

2020/08/09 23:40

なるほど! 最初にset.textを挿入できるのですね. さきほどやってみたらできました!!ありがとうございました!! それと申し訳ないのですが、別で1点質問がございます。 アプリを起動してチェックを入れてその状態を保持したいのですが可能でしょうか?
rockey_7625

2020/08/10 13:40

素晴らしい回答ありがとうございました。 自分もSharedPreferencesを使えばいいかな。。?と考えていたのですが どの行の部分にコードを挿入すればいいか解らずお聞きしました。 誠にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問