10

我有一个 onCheckChangedListener 来显示一个 textView,具体取决于选择了哪个单选按钮。我有 1 个问题和 1 个问题,我想知道是否有人可以帮助我。

问题:您可以将单选组默认检查值设置为 NO 单选按钮,以便一开始就没有检查吗?

问题:如何使用 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 回答