Javaで複数の組み合わせのチェックボックスのスイッチを使用するにはどうすればよいですか?

ミサエルコルテス

これはここでの私の最初の投稿なので、あまりうまくいっていないかもしれません...私はソフトウェア開発の学生で、現在Androidアプリの開発を学んでいます。

4つのチェックボックスを備えたプログラムを作成するように依頼されたので、それらのいずれかをチェックすると、アプリは特定の画像を表示します。例えば。

チェックボックス1:人。

チェックボックス2:車。

チェックボックス3:通り。

チェックボックス4:音楽。

1(人)と2(車)をチェックすると、同じ写真に人と車が表示されているはずです...これについて調べていたところ、この投稿を見つけましたそして、このプログラムを作るのに良い方法だと思いましたが、正しく動作させる方法がわかりません。私はこれをやってみました:

MainActivity.Java:

package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.CheckBox;
import android.widget.ImageView;
public class MainActivity extends AppCompatActivity {

    CheckBox cb1, cb2, cb3, cb4;
    ImageView img;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        cb1 = findViewById(R.id.persona);
        cb2 = findViewById(R.id.car);
        cb3 = findViewById(R.id.calle);
        cb4 = findViewById(R.id.music);
        img = findViewById(R.id.imagen);

        int pattern = (cb1.isSelected() ? 0b0001 : 0)
                | (cb2.isSelected() ? 0b0010 : 0)
                | (cb3.isSelected() ? 0b0100 : 0)
                | (cb4.isSelected() ? 0b1000 : 0);
        switch (pattern) {

// No selection
            case 0b0000:

                img.setImageResource(R.drawable.def);

                break;

            //Person
            case 0b0001:

                img.setImageResource(R.drawable.wick);

                break;

            //Car
            case 0b0010:

                img.setImageResource(R.drawable.car);

                break;
        }
    }
}

activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:id="@+id/rl">

    <CheckBox
        android:id="@+id/persona"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/persona"
        android:layout_marginTop="25dp"
        android:checked="false"
        android:textSize="30sp"
        />

    <CheckBox
        android:id="@+id/car"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/car"
        android:layout_below="@id/persona"
        android:checked="false"
        android:textSize="30sp"
        />

    <CheckBox
        android:id="@+id/calle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/calle"
        android:layout_below="@id/car"
        android:checked="false"
        android:textSize="30sp"
        />

    <CheckBox
        android:id="@+id/music"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/music"
        android:layout_below="@id/calle"
        android:checked="false"
        android:textSize="30sp"
        />

    <ImageView
        android:id="@+id/imagen"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/music"
        android:layout_centerHorizontal="true"
        android:contentDescription="@string/imagen" />

</RelativeLayout>

しかし、アプリケーションを実行すると、xmlで特定のチェックボックスchecked = "true"を作成しても、デフォルトの画像しか表示されません(ケース0b0000のみが機能するようです?)...それぞれに対してonClickイベントを作成してみましたチェックボックスをオンにしますが、パターン変数を正しく使用していないようです。

助けてもらえたらとてもありがたいです... Ifsでできると思いますが、個人的にはその方法に興味があります。

ナティグ・ババエフ

チェックボックスにリスナーをアタッチし、そのパターンチェックをonCheckedChanged()メソッド内に移動する必要がありますこのようにして、チェックボックスはアクティビティを通知し、pattern次の値を再計算できます

public class MainActivity extends AppCompatActivity implements CompoundButton.OnCheckedChangeListener {

    CheckBox cb1, cb2, cb3, cb4;
    ImageView img;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        cb1 =  findViewById(R.id.persona);
        cb2 = findViewById(R.id.car);
        cb3 = findViewById(R.id.calle);
        cb4 = findViewById(R.id.music);
        img = findViewById(R.id.imagen);

        cb1.setOnCheckedChangeListener(this);
        cb2.setOnCheckedChangeListener(this);
        cb3.setOnCheckedChangeListener(this);
        cb4.setOnCheckedChangeListener(this);
    }

    @Override
    public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
        int pattern = (cb1.isChecked() ? 0b0001 : 0)
                | (cb2.isChecked() ? 0b0010 : 0)
                | (cb3.isChecked() ? 0b0100 : 0)
                | (cb4.isChecked() ? 0b1000 : 0);
        switch (pattern) {
            // No selection
            case 0b0000:
                img.setImageResource(R.drawable.def);
                break;
            //Person
            case 0b0001:
                img.setImageResource(R.drawable.wick);
                break;
            //Car
            case 0b0010:
                img.setImageResource(R.drawable.car);
                break;
        }
    }
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

TFSにチェックインする前に、複数の開発者の作業を組み合わせるにはどうすればよいですか?

分類Dev

grepを複数の引数と異なる出力スイッチと組み合わせるにはどうすればよいですか?

分類Dev

「if(チェック済み= true)」の場合、チェックボックスにテキストを表示するにはどうすればよいですか?

分類Dev

Material-UI Reactでチェックボックスにカーソルを合わせたときに、チェックボックスのスタイルとアイコンを変更するにはどうすればよいですか?

分類Dev

SQLクエリで複数のHTMLチェックボックスの値を使用するにはどうすればよいですか?

分類Dev

チェックボックスを使用してデータベースから複数の行を削除するにはどうすればよいですか?

分類Dev

Angular 2のチェックボックスを使用して複数の行を削除するにはどうすればよいですか?

分類Dev

モーダルを使用して複数の値のチェックボックスを取得するにはどうすればよいですか

分類Dev

Javascriptでチェックされたチェックボックスのみの値を取得するにはどうすればよいですか?

分類Dev

Vue.jsの複数のチェックボックスにアクティブクラスを追加するにはどうすればよいですか?

分類Dev

複数のスイッチをスタックするにはどうすればよいですか?

分類Dev

反応フックのCheckAllチェックボックスでチェックボックスを作成するにはどうすればよいですか?

分類Dev

React.jsでチェックされているチェックボックスの数を取得するにはどうすればよいですか?

分類Dev

チェックボックスがasp.netでチェックされている場合、チェックボックスのラベルのスタイルを変更するにはどうすればよいですか?

分類Dev

一度に1つのチェックボックスのみをチェックするにはどうすればよいですか?

分類Dev

チェックされている場合、チェックボックスの値を変更するにはどうすればよいですか?

分類Dev

ピクチャボックスに合わせて画像のサイズを変更するにはどうすればよいですか?

分類Dev

GroupBox内のすべてのチェックボックスをチェック/チェック解除するにはどうすればよいですか?

分類Dev

Androidでチェックできるチェックボックスの数を決定するにはどうすればよいですか?

分類Dev

Laravelのデータベースに複数のチェックボックス値を送信するにはどうすればよいですか?

分類Dev

チェックボックスの変更が行われる前に関数を実行するにはどうすればよいですか?

分類Dev

Prestashop1.6でのアカウント作成に複数のチェックボックスを設定するにはどうすればよいですか。

分類Dev

Nativescriptのチェックボックスの値を取得するにはどうすればよいですか?

分類Dev

WordPressの投稿メタの更新時に複数のチェックボックスを保存するにはどうすればよいですか?

分類Dev

Gridviewでチェックボックスの列を取得するにはどうすればよいですか?

分類Dev

recyclerviewでチェックボックスの位置を保存するにはどうすればよいですか?

分類Dev

JFaceのTableViewerでチェックボックスを作成するにはどうすればよいですか?

分類Dev

チェック済みのチェックボックスをCrystalReportに表示するにはどうすればよいですか

分類Dev

c#MVC Entity Frameworkで複数の送信ボタンとチェックボックスを処理するにはどうすればよいですか?

Related 関連記事

  1. 1

    TFSにチェックインする前に、複数の開発者の作業を組み合わせるにはどうすればよいですか?

  2. 2

    grepを複数の引数と異なる出力スイッチと組み合わせるにはどうすればよいですか?

  3. 3

    「if(チェック済み= true)」の場合、チェックボックスにテキストを表示するにはどうすればよいですか?

  4. 4

    Material-UI Reactでチェックボックスにカーソルを合わせたときに、チェックボックスのスタイルとアイコンを変更するにはどうすればよいですか?

  5. 5

    SQLクエリで複数のHTMLチェックボックスの値を使用するにはどうすればよいですか?

  6. 6

    チェックボックスを使用してデータベースから複数の行を削除するにはどうすればよいですか?

  7. 7

    Angular 2のチェックボックスを使用して複数の行を削除するにはどうすればよいですか?

  8. 8

    モーダルを使用して複数の値のチェックボックスを取得するにはどうすればよいですか

  9. 9

    Javascriptでチェックされたチェックボックスのみの値を取得するにはどうすればよいですか?

  10. 10

    Vue.jsの複数のチェックボックスにアクティブクラスを追加するにはどうすればよいですか?

  11. 11

    複数のスイッチをスタックするにはどうすればよいですか?

  12. 12

    反応フックのCheckAllチェックボックスでチェックボックスを作成するにはどうすればよいですか?

  13. 13

    React.jsでチェックされているチェックボックスの数を取得するにはどうすればよいですか?

  14. 14

    チェックボックスがasp.netでチェックされている場合、チェックボックスのラベルのスタイルを変更するにはどうすればよいですか?

  15. 15

    一度に1つのチェックボックスのみをチェックするにはどうすればよいですか?

  16. 16

    チェックされている場合、チェックボックスの値を変更するにはどうすればよいですか?

  17. 17

    ピクチャボックスに合わせて画像のサイズを変更するにはどうすればよいですか?

  18. 18

    GroupBox内のすべてのチェックボックスをチェック/チェック解除するにはどうすればよいですか?

  19. 19

    Androidでチェックできるチェックボックスの数を決定するにはどうすればよいですか?

  20. 20

    Laravelのデータベースに複数のチェックボックス値を送信するにはどうすればよいですか?

  21. 21

    チェックボックスの変更が行われる前に関数を実行するにはどうすればよいですか?

  22. 22

    Prestashop1.6でのアカウント作成に複数のチェックボックスを設定するにはどうすればよいですか。

  23. 23

    Nativescriptのチェックボックスの値を取得するにはどうすればよいですか?

  24. 24

    WordPressの投稿メタの更新時に複数のチェックボックスを保存するにはどうすればよいですか?

  25. 25

    Gridviewでチェックボックスの列を取得するにはどうすればよいですか?

  26. 26

    recyclerviewでチェックボックスの位置を保存するにはどうすればよいですか?

  27. 27

    JFaceのTableViewerでチェックボックスを作成するにはどうすればよいですか?

  28. 28

    チェック済みのチェックボックスをCrystalReportに表示するにはどうすればよいですか

  29. 29

    c#MVC Entity Frameworkで複数の送信ボタンとチェックボックスを処理するにはどうすればよいですか?

ホットタグ

アーカイブ