10

どのラジオボタンが選択されているかに応じて textView を表示する onCheckChangedListener があります。誰かが私を助けてくれるかどうか疑問に思っていた 1 つの質問と 1 つの問題があります。

質問: ラジオ グループのデフォルトのチェック値を [いいえ] ラジオ ボタンに設定して、最初から何もチェックされないようにすることはできますか?

問題: IF ステートメントを使用して、テキスト ビューが既に "表示" されているかどうかを判断するにはどうすればよいですか。また、それが "非表示" に設定されている場合は、現在のコードを含めます。

コード:

    @Override
public void onCheckedChanged(RadioGroup arg0, int arg1) {
    switch(arg1){
    case R.id.rfolk1:
        Folk1.start();
        TvFolk1.setVisibility(View.VISIBLE);

        TvFolk2.setVisibility(View.GONE);

        Play.setVisibility(View.VISIBLE);
        Pause.setVisibility(View.VISIBLE);
        Stop.setVisibility(View.VISIBLE);

        Play2.setVisibility(View.GONE);
        Pause2.setVisibility(View.GONE);
        Stop2.setVisibility(View.GONE);
        break;
    case R.id.rfolk2:
        Folk2.start();
        TvFolk2.setVisibility(View.VISIBLE);
        TvFolk1.setVisibility(View.GONE);

        Play2.setVisibility(View.VISIBLE);
        Pause2.setVisibility(View.VISIBLE);
        Stop2.setVisibility(View.VISIBLE);

        Play.setVisibility(View.GONE);
        Pause.setVisibility(View.GONE);
        Stop.setVisibility(View.GONE);
        break;
    }
4

2 に答える 2

31

ViewクラスにはgetVisibility()メソッドが含まれています。それを比較してください:

例えば:

if (TvFolk1.getVisibility() == View.VISIBLE)
  TvFolk2.setVisibility(View.GONE);

コードを短縮するために、メソッドを作成することもできます。

public static void goneIfVisible (View v)
{
  if (v.getVisibility() == View.VISIBLE)
      v.setVisibility(View.GONE);
}

Java では、変数は小文字であり、クラス名には大文字のみを使用することに注意してください。

于 2013-03-12T14:07:30.923 に答える
2

// TextView が既に表示されていて、非表示にする場合。

if (TvFolk1.isShown()) {
    TvFolk2.setVisibility(View.INVISIBLE);
}

// ラジオ ボタン グループからすべてのラジオ ボタンのチェックを外す場合

RadioGroup rgButton = (RadioGroup)findViewById(R.id.radiobuttongroup);
rgButton.clearCheck();
于 2013-03-12T14:12:39.090 に答える