2015-06-19 38 views
2

我想從數據庫分配數據到textview或變量。但是,當爲textview或變量賦值時出現錯誤。當我登錄顯示數據時,它是可以的。Android分配到文本視圖

錯誤: 只有創建視圖層次結構的原始線程可以觸及其視圖。

下面是代碼:

try { 
      String sql = "SELECT Cname FROM demo"; 
      Statement stmt = con.createStatement(); 
      ResultSet rs = stmt.executeQuery(sql); 

      while (rs.next()) { 
        TextView txtValue = (TextView)findViewById(R.id.textView3); 
      txtValue.setText(rs.getString("Cname")); 

      } 
+0

您可以張貼堆棧跟蹤? –

回答

3

由於錯誤意味着你需要設置在主線程上的文字。

您可以發佈通過TextView的消息,所以它運行在UI線程:

final ResultSet rs = stmt.executeQuery(sql); 
... 
final TextView txtValue = (TextView) findViewById(R.id.textView3); 
txtValue.post(new Runnable() { 
    @Override 
    public void run() { 
     txtValue.setText(rs.getString("Cname")); 
    } 
});