我想做一個簡單的文字遊戲,但我甚至不能通過第一步。 佈局中有一個textview和3個單選按鈕。 我想在單擊其中一個單選按鈕時更改文本,並確定應用程序要使用的文本,我有一個位置int。 示例:我選擇按鈕一:如果position = 1,則將設置的文本設置爲文本2.如果position = 9,則將text設置爲11等等。 這裏是代碼:setText在checkedchanged上?
import android.app.Activity;
import android.os.Bundle;
import android.view.Window;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.TextView;
public class Game extends Activity implements OnCheckedChangeListener{
public int position;
TextView text;
RadioGroup rggr;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
position = 1;
text = (TextView) findViewById(R.id.text);
setContentView(R.layout.p1);
rggr = (RadioGroup) findViewById(R.id.rgGr);
rggr.setOnCheckedChangeListener(this);
}
public void onCheckedChanged(RadioGroup group, int checkedId) {
// TODO Auto-generated method stub
switch (checkedId){
case R.id.rb1:
if(position == 1){
text.setText("this is text 1");
position = 2;
}
}
}
}
如果我更改線路 「text.setText(」 這是文1 「);」到別的東西。例如setcontentview,那麼它一切正常。但是當我想改變文本時,它會在我選擇單選按鈕時崩潰。
崩潰的logcat會有幫助 –
你可以切換'text =(TextView)findViewById(..)'和'setContentView(...)'的順序嗎? –
同意@DavidM - 你不能調用' findViewById(...)'在你設置你的內容視圖之前 - 它會簡單地爲你的'TextView'返回'null'。 – Squonk