2013-05-09 74 views
0

我有一個TableLayout,其中包含TableRows和CheckBox以及TextView。當我推動一個複選框時,我需要知道TableRow中的複選框是爲了讓TextView「關聯」到這個複選框。例如:如何知道在哪個TableRow中放置了CheckBox

TableLayout:

  • 的TableRow 1:X TextView1
  • 的TableRow 2:X TextView2
  • ...

我想是這樣的:

cb.setOnClickListener(new View.OnClickListener() {            
    @Override 
    public void onClick(View v) { 
    if (cb.isChecked()) 
    { 
     int id_cb = cb.getId(); 
     boolean encontrado = false; 
     for (int i = 0; i < tabla_tareas.getChildCount() && !encontrado; i++) 
     { 
      TableRow aux_tr = (TableRow) tabla_tareas.getChildAt(i); 
      CheckBox aux_cb = (CheckBox) aux_tr.getChildAt(0); 
      if (id_cb == aux_cb.getId()) 
        encontrado = true; 
     }... 

但它不起作用。

+1

我不明白你爲什麼需要checkBox和相關的TextView,如果你只是可以做checkBox.setText(「some String」); – Elior 2013-05-09 16:53:07

+0

是的。我正在顯示數據庫中的數據,現在我試圖在每一行中添加一個複選框來升級我的應用程序,所以我不記得CheckBox對象有一個setText方法。謝謝。 – Ronie86 2013-05-09 17:05:06

+0

歡迎:) – Elior 2013-05-09 17:09:40

回答

1

利用什麼Elior說,你爲什麼不只是使用folling方法來實現你想要什麼:

cb.setOnClickListener(new View.OnClickListener() {            
@Override 
public void onClick(View v) { 
if (cb.isChecked()) 
{ 
    cb.getText().toString(); //This will retrieve the text associated with the Checkbox 
    cb.setText("Your new string here"); //This will set the text associated with the CheckBox 
    }... 

通過上述兩種方法,你應該能夠做的一切,你需要無需要TextView,並且可能沒有TableLayout,因爲我假設您正在使用它來對齊CheckBoxesTextViews

+1

是的,這正是我需要的。非常感謝你。有時你很沮喪,無法看到最簡單的解決方案。 – Ronie86 2013-05-09 17:10:52

+1

+1爲你的答案..我太累了,寫一個答案嘿嘿.. – Elior 2013-05-09 17:12:14

+0

@ Ronie86同意! – TronicZomB 2013-05-09 17:13:07

相關問題