2017-10-21 100 views
-2

有了這段代碼,我必須在done函數實例化textview,我怎樣才能在onCreate中聲明textview而不聲明它最終?如何在onCreate中實例化而不聲明它最終

public class MyActivity extends AppCompatActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_layout); 

    android.support.v7.app.ActionBar actionBar = getSupportActionBar(); 

    DataQuery query = DataQuery.get("id"); 
    query.getInBackground(object_id, new GetCallback<DataObject>() { 
     TextView data = (TextView)findViewById(R.id.data); 


     @Override 
     public void done(DataObject object, DataException e) { 
      if (e == null) { 
       data.setText((String)object.m_properties.get("data")); 

      } 
     } 
    }); 

} 

}

+0

您是否試過將TextView移動到'done()'中?僅供參考,使用final只是確保您不能重新分配其參考。 – codeFreak

+0

保持TextVewi的全局變量 –

回答

0

正如ŠimeTokić所說,你會聲明它是一個成員變量。這將是這個樣子:

public class MyActivity extends AppCompatActivity { 

TextView data; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_layout); 
    ... 
} 

這是Android中UI組件常見的做法反正如果你曾經需要在其他地方訪問該組件。

0

聲明爲類MyActivity的成員變量。

+0

這應該在評論中而不是作爲答案。 –