2014-01-15 45 views
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"); 

     } 
    }); 
    } 

我需要做的這兩個以下的事情

  1. 如何找到單選按鈕的文字選擇主要活動。
  2. 如何在活動開始時默認選擇一個單選按鈕,並且它應該保持互斥。
+0

沒有真正嘗試r1.getText文本()爲單選按鈕的文本?設置默認使用r1.setChecked(true) – Saqib

+0

'getText()' –

+0

@Saqib如果我使用r1.setChecked(true),它會永久檢查它是不需要的。 – WISHY

回答

1

要查找單選按鈕的使用radiobutton.getText()方法 爲了使默認XML中做出選擇的那一個單選按鈕setChecked爲單選按鈕

相關問題