【问题标题】:Android: Programmatically set checkbox set text position on the rightAndroid:以编程方式设置复选框设置右侧的文本位置
【发布时间】:2023-03-04 07:46:07
【问题描述】:

如何设置以编程方式创建的复选框的文本在复选框的左侧而不是右侧对齐。下面是一段代码sn-p:

Checkbox check1 = new Checkbox(getApplicationContext());
check1.setLayoutParams(new ActionBar.LayoutParams(LinearLayoutCompat.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));
check1.setId(fieldNo);
check1.setTextColor(Color.BLACK);
check1.setGravity(Gravity.RIGHT);
check1.setText(formField.get(fieldNo));

上面的代码导致复选框右侧显示的文本。

这是截图:

我怎样才能让复选框左侧的文本?

【问题讨论】:

  • check1.setGravity(Gravity.LEFT) 试试这个
  • 试过但没用。

标签: java android checkbox


【解决方案1】:

您需要更改以下内容

check1.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));

在这一行中,您使用的是 ActionBar 参数,然后是 LinearLayoutCompat 参数。尝试坚持 1 类,并在自定义视图中,如复选框,只是 LinearLayout 会做的。

更新 1:

您应该使用 CheckedTextView。我为此使用了标准的 android drawable,但您也可以使用自定义复选框设计。

所以你的整体代码看起来像 -

final CheckedTextView check1 = new CheckedTextView(getApplicationContext());
    check1.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));
    check1.setId(fieldNo);
    check1.setCheckMarkDrawable(android.R.drawable.checkbox_off_background);
    check1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (check1.isChecked()){
                check1.setChecked(false);
                check1.setCheckMarkDrawable(android.R.drawable.checkbox_off_background);
            }else{
                check1.setChecked(true);
                check1.setCheckMarkDrawable(android.R.drawable.checkbox_on_background);
            }
        }
    });
    check1.setTextColor(Color.BLACK);
    check1.setGravity(Gravity.LEFT);
    check1.setText(formField.get(fieldNo));

【讨论】:

  • 我刚刚做了,它对我来说非常好。您如何将此复选框添加到您的 parentView?
  • 对不起,我误解了你的问题。我以为你想要它像屏幕截图一样。
  • @max 更新了我的答案,现在这对我有用。看看它是否适合你的需要。还添加了添加自定义可绘制对象的选项。
  • 谢谢,我还在 SO 中添加了我的答案,大多数人都在看。您能否也请在此链接上对其进行投票,以便下次人们可以查看它。 stackoverflow.com/questions/3156781/…
猜你喜欢
  • 2011-06-27
  • 1970-01-01
  • 1970-01-01
  • 2018-01-23
  • 2014-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多