我该怎么办 TextView 不可点击。 ?当我尝试使用android:clickable="false"
时,它对我不起作用。
请参见下面的XML
代码:
<TextView
android:id="@+id/tv_submit"
android:layout_width="match_parent"
android:layout_height="@dimen/btn_height_common"
android:layout_marginTop="@dimen/_15sdp"
android:background="@drawable/back_btn_yellow_rounded"
android:gravity="center"
android:textColor="@color/white"
android:layout_marginRight="@dimen/_20sdp"
android:layout_marginLeft="@dimen/_20sdp"
android:textStyle="bold"
android:alpha="0.50"
android:clickable="false" <!--Hear you can see i set clickable="false-->
android:textSize="@dimen/btn_label_inputtextsize"
android:text="@string/submit"
android:fontFamily="@font/sf_pro_display_bold"/>
Checkbox
的初始化:
chk_credit_card = findViewById(R.id.chk_credit_card);
chk_debit_card = findViewById(R.id.chk_debit_card);
chk_bank_deposit = findViewById(R.id.chk_bank_deposit);
chk_in_app_purchase = findViewById(R.id.chk_in_app_purchase);
使用复选框代码:
for (CheckBox checkBox : chk_credit_card) {
checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@SuppressLint("Range")
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
// one of the checkbox is checked so enable button
tv_submit.setEnabled(true);
tv_submit.setAlpha(150);
tv_submit.setEnabled(true);
/* chk_debit_card.setChecked(false);
chk_bank_deposit.setChecked(false);
chk_in_app_purchase.setChecked(false);*/
} else {
// check if any of check box is checked
boolean isAnyChecked = false;
for (CheckBox box : chk_credit_card) {
if (box.isChecked()) isAnyChecked = true;
}
tv_submit.setEnabled(isAnyChecked);
}
}
});
我提出了太多解决方案,但对我来说不起作用。所以请帮忙。 :)
答案 0 :(得分:1)
int arr[] = {-1,3333,1,3,4,2,3,4,5,6,7,4,11,12,332,1,-11};
int i=0,j=1;
int size = sizeof(arr)/sizeof(arr[0]);
print_array(arr,size);
while(i<size-1)
{
while(j<size-i)
{
{
if(arr[j]<arr[j-1])
swap(&arr[j],&arr[j-1]);
}
j++;
}
i++;
}
print_array(arr,size);
更新
复选框应实时收听。
textView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (checkBox.isChecked()){
// do your work
}
}
});
建议
TextView默认没有波纹效果,请使用Button以获得良好的UI。选中this answer,使背景选择器可以启用,禁用和按下颜色。
调查了问题之后,您实际上需要ArrayList<CheckBox> checkBoxes = new ArrayList<>();
checkBoxes.add(checkBox1);
checkBoxes.add(checkBox2); // add all your checkbox
for (CheckBox checkBox : checkBoxes) {
checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
// one of the checkbox is checked so enable button
textView.setEnabled(true);
} else {
// check if any of check box is checked
boolean isAnyChecked = false;
for (CheckBox box : checkBoxes) {
if (box.isChecked()) isAnyChecked = true;
}
textView.setEnabled(isAnyChecked);
}
}
});
}
,它只能检查一个RadioGroup
RadioButton
只需在XML中使用RadioGroup。这是一个例子。
if (radioGroup.getCheckedRadioButtonId() == -1){
// no radio button is checked
}
else {
// one radio button is checked
}
您也可以进行<RadioGroup
android:id="@+id/radioGroup"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:checkedButton="@id/rbMale"
>
<RadioButton
android:id="@+id/rbMale"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Male"
/>
<RadioButton
android:id="@+id/rbFemale"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Female"
/>
</RadioGroup>
。
如果您想要CheckBox之类的RadioButton,则非常简单
radioGroup.getCheckedRadioButtonId() == R.id.rbMale
矛盾!,您的所有问题都已解决:)
答案 1 :(得分:0)
您可以将此属性添加到datepicker
中,以使其不可单击
从您的XML
TextView
在JAVA中
android:enabled="false"
答案 2 :(得分:0)
根据您的评论... ,您可以遵循此逻辑。
textview.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (if_checked) {
// go to another activity
}else{
//ignore
}
});
答案 3 :(得分:0)
将onClickListener设置为TextView会将clickable属性更改为true。如果您不想单击textView,请不要将其设置为clickListener。 如果您希望在某些情况下可以单击textView,而在其他情况下不希望单击,则可以设置单击侦听器或将其删除,例如:
启用点击:
textView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//do your work
}
});
禁用点击:
textView.setOnClickListener(null);
答案 4 :(得分:0)
尝试一下, 在Android Studio软件包列表中,有一个名为“ res”的文件夹 在“ res”文件夹下,选择名为values的文件夹,在给定文件夹中选择styles.xml
从
更改其值<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
为此
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
希望它有效!