2014-01-15 3 views
0

Я сделал программный переключатель 3X2 программно.Получить текст выбранного переключателя, андроида?

Это мой 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 верно для этой кнопки радио

Смежные вопросы