2015-04-01 61 views
1

我想用我的TextView作爲屬性TextView作爲屬性?

private TextView up = (TextView) findViewById(R.id.tv_up); 
private TextView mid = (TextView) findViewById(R.id.tv_mid); 
private TextView down = (TextView) findViewById(R.id.tv_down); 

,而不是把它定義evertime新:

public void onButtonClickUp(View v) { 
     TextView up = (TextView) findViewById(R.id.tv_up); 
     TextView mid = (TextView) findViewById(R.id.tv_mid); 
     TextView down = (TextView) findViewById(R.id.tv_down); 
     <..> 
} 

public void onButtonClickDown(View v) { 
     TextView up = (TextView) findViewById(R.id.tv_up); 
     TextView mid = (TextView) findViewById(R.id.tv_mid); 
     TextView down = (TextView) findViewById(R.id.tv_down); 
     <..> 
} 

上梅索德是我的Android設備上製造force close error。如何解決這個問題或者這是一般可能的?

謝謝!

+0

您可以將Textview聲明爲全局變量,因此您可以在整個類中使用它。如果將其設置爲public static,則可以在其他活動中使用textview以獲取其值。 – 2015-04-01 13:57:31

+0

我強烈建議不要爲這個用例聲明全局變量。應該非常小心地使用全局變量。 – ceekay 2015-04-01 14:00:43

+0

@ceekay我試着在 – 2015-04-01 14:03:52

回答

1
public class TestActivity extends Activity { 

    private TextView up; 
    private TextView mid; 
    private TextView down; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    up = (TextView) findViewById(R.id.tv_up); 
    mid = (TextView) findViewById(R.id.tv_mid); 
    down = (TextView) findViewById(R.id.tv_down); 

} 

我不知道爲什麼你的應用程序崩潰,但你會通過聲明/像這樣的分配你的部件...只有1次,整個活動爲自己節省大量的頭痛。

+0

以下表達同樣的想法,謝謝!我搜索了這個! :) – 8m47x 2015-04-01 14:26:47