2015-09-23 58 views
-1

我正在開發我的第一個Android應用程序。我的應用程序中有一個表格佈局,它會動態添加行。但是,我想將表格行轉換爲字符串。我試過「row.toString()」,但我沒有得到預期的結果。請找到以下代碼片段:是否有可能在Android中將表格行轉換爲字符串?

 View view = null; 

     for(i = 0, j = tblayout.getChildCount(); i < j; i++) 
     { 
      view = tblayout.getChildAt(i); 
      TableRow rw = (TableRow)tblayout.getChildAt(i); 
      ColorDrawable viewColor = (ColorDrawable) view.getBackground(); 
      int colorId = viewColor.getColor(); 
      if(colorId == Color.parseColor("#E143ED23")) { 
       num ++; 
       //temCnt = view.toString(); 
       temCnt = rw.toString(); 
      } 
     } 
     Toast.makeText(getApplicationContext(),temCnt, Toast.LENGTH_LONG).show(); 

但它沒有顯示實際的表格行數據。它顯示了一些IDS或垃圾價值。

我的要求是: 我有2個文本框和2個按鈕。當按下第一個按鈕「確定」時,文本框內的值將與複選框一起填充到表格佈局中。默認情況下,該行將被檢查。但用戶可以取消選中每個項目。之後,當按下第二個按鈕「全部保存」時,它將搜索所有已檢查的錶行,並將錶行插入到我的MS SQL表中。

有什麼辦法可以將表格行轉換成Java中的字符串?我真的被困在這。如果有人能幫助我,這將是非常有幫助的。 請幫忙...

+0

我認爲你必須得到它的細胞的細胞,如'通過循環TextView的細胞=(TextView的)rw.getChildAt(I);' –

+0

爲什麼你想用toString()。你可以在TableRow上使用任何方法來輸出你想要的東西。 – pmartin8

+0

此外,請添加您期望得到的問題,這將有助於找到一個好的解決方案。 – pmartin8

回答

1

toString()是Java,C#和其他編程語言中非常基本的方法。 Java的Object類有一個基本的實現,你可以在任何繼承Object的類中重載這個方法(也就是說,每個類都可以)。我不知道那些開發了Android的TableRow類的人已經重寫了這個方法。這可能是因爲你所得到的是TableRow對象的一些不可讀,無意義的表示。

假設您在TableRow中有一個名爲txtName的TextView,接着是第二個稱爲txtNumber的TextView。你可以得到你想要的東西通過執行以下操作:

... 
ColorDrawable viewColor = (ColorDrawable) view.getBackground(); 
int colorId = viewColor.getColor(); 
if(colorId == Color.parseColor("#E143ED23")) { 
    num ++; 
    //temCnt = view.toString(); 
    TextView nameField = (TextView) rw.findViewById(R.id.txtName); 
    TextView numberField = (TextView) rw.findViewById(R.id.txtNumber); 
    temCnt = nameField.getText().toString() + ": " + numberField.getText().toString(); 
} 
... 
+0

我的TextView是動態的,我以編程方式創建textviews。所以我不能在這裏給我的動態視圖ID findViewById(R.id.txtName)...那麼有沒有其他的方式? – Msn

+0

首先,您可以使用setId()方法爲您動態創建的View設置ID。只要確保分配的ID是唯一的。其次,如果你有一個動態創建的View的引用,那麼你可以忽略findViewById()方法 - 你已經有了該View的引用。 – logcat

+0

或者,您可以迭代TableRow的子項並實現自己的邏輯。例如,您可以檢查某個孩子是否是帶有Java的instanceof關鍵字(v instanceof TextView)的TextView,如果是,則將其轉換爲TextView並按上述方式繼續。 – logcat

相關問題