2016-12-22 109 views
0

我有一個問題。
在行「textView.setText(money + "$");」我的程序崩潰。
moneyint,而textView1是我TextViewIDTextView SetText

public TextView textView; 
public void onCashClick(View view) { 
      money++; 
      textView = (TextView) view.findViewById(R.id.textView1); 
      textView.setText(money + "$"); 
     } 

感謝您的幫助,爲我的英語不好對不起。

+2

而你得到了什麼異常之前?發佈錯誤logcat。 –

+0

同意,你可以發佈logcat嗎?首先宣佈'錢'在哪裏? –

+0

在其他clashh –

回答

2

以下行讓你的應用崩潰。因爲點擊發送的視圖是按鈕,而不是容器。因此,該按鈕不包含您的textview。您應該在該行上獲得NullPointerException。按鈕點擊

:相反,你應該在onCreate方法定義的TextView:

textView = (TextView) findViewById(R.id.textView1); 

,只有後,onCashClick調用。

UPDATE:你的代碼更改爲以下,

public TextView textView; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    textView = (TextView) view.findViewById(R.id.textView1); 
    } 

public void onCashClick(View view) { 
     money++; 
     textView.setText(money + "$"); 
    } 
+2

當你寫(int +「string」)和(valueOf(int)+「string」)沒有什麼不同時 – FarshidABZ

+0

我的應用程序再一次崩潰。 :( –

+0

連接一個int與一個字符串隱式轉換成字符串。這將沒有什麼區別。 –

0

因爲你正在使用綁定文本視圖的觀點是點擊的按鈕,而是採用view.findViewById()如果你是在一個活動只需使用findViewById,如果你在一個片段中使用你的rootView。

0

只需刪除view是findViewByID是這樣

textView = (TextView) findViewById(R.id.textView1); 
+0

這個有意義 – diedu

+0

是的,我測試了它,然後我發佈了答案:) –

+0

不工作... –