Java Android:以编程方式设置复选框在右侧设置文本位置
如何将以编程方式创建的复选框的文本设置为在复选框的左侧而不是右侧对齐。下面是一段代码片段:Java Android:以编程方式设置复选框在右侧设置文本位置,java,android,checkbox,Java,Android,Checkbox,如何将以编程方式创建的复选框的文本设置为在复选框的左侧而不是右侧对齐。下面是一段代码片段: Checkbox check1 = new Checkbox(getApplicationContext()); check1.setLayoutParams(new ActionBar.LayoutParams(LinearLayoutCompat.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT)); check1.se
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.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));
在这一行中,您使用的是ActionBar参数,然后是LinearLayoutCompat参数。尝试坚持使用1个类别,在自定义视图中,如复选框,仅线性布局即可
更新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));
check1.setGravity(Gravity.LEFT)
试试这个试过了,但不起作用。我刚试过,它对我非常有效。你是如何将此复选框添加到你的parentView的?对不起,我错了,我问错了你的问题。我还以为你想在截图中看到呢。@max更新了我的答案,现在这个对我有用了。看看是否适合你的需要。添加了一个选项来添加自定义绘图。谢谢,我也添加了我的答案,所以大多数人都在看。你能不能也在这个链接上投票,这样下次人们可以看到它。