我正在尝试制作简单的复选框,当选中复选框时,我想显示带有复选框文本的祝酒词。
这是我尝试但不能正常工作的代码
nextscreen.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
RelativeLayout layout = (RelativeLayout)findViewById(R.id.DSP);
for (int i = 0; i < layout.getChildCount(); i++) {
v = layout.getChildAt(i);
if (v instanceof CheckBox) {
if (((CheckBox) v).isChecked()){
String text = String.valueOf(((CheckBox) v).getText());
Log.d("@@@@@@@@@" , "somethinng" +text);
}
}
}
}
});
这是我的布局。
<RelativeLayout
android:layout_below="@+id/customer_email_addnew_edittext"
android:layout_width="match_parent"
android:id="@+id/DSP"
android:layout_height="match_parent">
<android.support.v7.widget.AppCompatCheckBox
android:id="@+id/toi"
android:layout_width="match_parent"
android:layout_margin="5dp"
android:layout_height="wrap_content"
android:text="Times of India"
android:background="@drawable/customborder"/>
<android.support.v7.widget.AppCompatCheckBox
android:id="@+id/danikjagran"
android:layout_width="match_parent"
android:layout_below="@+id/toi"
android:layout_margin="5dp"
android:layout_height="wrap_content"
android:text="Times of India"
android:background="@drawable/customborder"/>
<android.support.v7.widget.AppCompatCheckBox
android:id="@+id/htimes"
android:layout_width="match_parent"
android:layout_below="@+id/danikjagran"
android:layout_margin="5dp"
android:layout_height="wrap_content"
android:text="Times of India"
android:background="@drawable/customborder"/>
<Button
android:id="@+id/conntinue"
android:text="continue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"/>
</RelativeLayout>
有没有办法可以遍历所有选中的复选框并获取文本。
答案 0 :(得分:1)
您提供的代码并未显示Toast
,而是写入日志。
试试这个:
if (((CheckBox) v).isChecked()) {
String text = String.valueOf(((CheckBox) v).getText());
Toast.makeText(this, text, Toast.LENGTH_SHORT).show();
}
<强>更新强>
这样您每次都不必迭代子视图:
public class YourActivity extends Activity {
private android.support.v7.widget.AppCompatCheckBox mToi;
private android.support.v7.widget.AppCompatCheckBox mDanikjagran;
private android.support.v7.widget.AppCompatCheckBox mHtimes;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.your_activity);
mToi = (android.support.v7.widget.AppCompatCheckBox) findViewById(R.id.toi);
mDanikjagran = (android.support.v7.widget.AppCompatCheckBox) findViewById(R.id.danikjagran);
mHtimes = (android.support.v7.widget.AppCompatCheckBox) findViewById(R.id.htimes);
// ...
nextscreen.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mToi.isChecked()) {
Toast.makeText(this, mToi.getText(), Toast.LENGTH_SHORT).show();
}
if (mDanikjagran.isChecked()) {
Toast.makeText(this, mDanikjagran.getText(), Toast.LENGTH_SHORT).show();
}
if (mHtimes.isChecked()) {
Toast.makeText(this, mHtimes.getText(), Toast.LENGTH_SHORT).show();
}
}
});
}
}