0
我以編程方式製作了3X2單選按鈕。獲取選定的單選按鈕,android的文本?
這是我tableLayout
public class ToggleButtonGroupTableLayout extends TableLayout implements
OnClickListener {
private static final String TAG = "ToggleButtonGroupTableLayout";
private RadioButton activeRadioButton;
/**
* @param context
*/
public ToggleButtonGroupTableLayout(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
/**
* @param context
* @param attrs
*/
public ToggleButtonGroupTableLayout(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
@Override
public void onClick(View v) {
final RadioButton rb = (RadioButton) v;
if (activeRadioButton != null) {
activeRadioButton.setChecked(false);
}
rb.setChecked(true);
activeRadioButton = rb;
}
/*
* (non-Javadoc)
*
* @see android.widget.TableLayout#addView(android.view.View, int,
* android.view.ViewGroup.LayoutParams)
*/
@Override
public void addView(View child, int index,
android.view.ViewGroup.LayoutParams params) {
super.addView(child, index, params);
setChildrenOnClickListener((TableRow) child);
}
/*
* (non-Javadoc)
*
* @see android.widget.TableLayout#addView(android.view.View,
* android.view.ViewGroup.LayoutParams)
*/
@Override
public void addView(View child, android.view.ViewGroup.LayoutParams params) {
super.addView(child, params);
setChildrenOnClickListener((TableRow) child);
}
private void setChildrenOnClickListener(TableRow tr) {
final int c = tr.getChildCount();
for (int i = 0; i < c; i++) {
final View v = tr.getChildAt(i);
if (v instanceof RadioButton) {
v.setOnClickListener(this);
}
}
}
public int getCheckedRadioButtonId() {
if (activeRadioButton != null) {
return activeRadioButton.getId();
}
return -1;
}
}
這是我的主要活動
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
l = (LinearLayout) findViewById(R.id.mainl);
ToggleButtonGroupTableLayout t=new ToggleButtonGroupTableLayout(this);
TableRow r1=new TableRow(this);
TableRow r2=new TableRow(this);
TableRow r3=new TableRow(this);
b1=new RadioButton(this);
b2=new RadioButton(this);
b3=new RadioButton(this);
b4=new RadioButton(this);
b5=new RadioButton(this);
b6=new RadioButton(this);
b7=new RadioButton(this);
b1.setText("b1");
b2.setText("b2");
b3.setText("b3");
b4.setText("b4");
b5.setText("b5");
b6.setText("b6");
b7.setText("b7");
r1.addView(b1);
r1.addView(b2);
r1.addView(b3);
r2.addView(b4);
r2.addView(b5);
r2.addView(b6);
r3.addView(b7);
t.addView(r1);
t.addView(r2);
t.addView(r3);
l.addView(t);
t.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
RadioButton rb = (RadioButton) v;
Log.e("msg ", rb.getText().toString());
Log.e("msg ", "clciked");
}
});
}
我需要做的這兩個以下的事情
- 如何找到單選按鈕的文字選擇主要活動。
- 如何在活動開始時默認選擇一個單選按鈕,並且它應該保持互斥。
沒有真正嘗試r1.getText文本()爲單選按鈕的文本?設置默認使用r1.setChecked(true) – Saqib
'getText()' –
@Saqib如果我使用r1.setChecked(true),它會永久檢查它是不需要的。 – WISHY