Android 台灣中文網
標題:
新手請教與畫面物件配對問題
[打印本頁]
作者:
wahaha3q
時間:
2018-6-10 13:46
標題:
新手請教與畫面物件配對問題
本帖最後由 wahaha3q 於 2018-6-10 13:48 編輯
各位前輩大家好
最近我在練習書上的範例時 在與畫面物件配對上有些疑問
以下是書上的範例:
package
com.danny.radiobtn;
import
android.content.Context;
import
android.support.v7.app.AppCompatActivity;
import
android.os.Bundle;
import
android.view.MotionEvent;
import
android.view.View;
import
android.widget.RadioGroup;
import
android.widget.TextView;
public class
MainActivity
extends
AppCompatActivity {
TextView
txv
;
RadioGroup
ticketType
;
@Override
protected void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.
activity_main
);
}
public void
show(View v) {
TextView txv = (TextView) findViewById(R.id.
txv
);
RadioGroup ticketType = (RadioGroup) findViewById(R.id.
ticketType
);
switch
(ticketType.getCheckedRadioButtonId()) {
case
R.id.
adult
:
txv.setText(
"買全票"
);
break
;
case
R.id.
child
:
txv.setText(
"買半票"
);
break
;
case
R.id.
senior
:
txv.setText(
"買敬老票"
);
break
;
}
}
}
我試著把
TextView txv = (TextView)findViewById(R.id.txv);
RadioGroup ticketType = (RadioGroup)findViewById(R.id.ticketType);
放到onCreate裡面 雖然執行後畫面會出現,但只要按了button後就會閃退完全無法執行...請問是這種寫法有問題嗎?
感謝~
作者:
muska1116
時間:
2018-6-11 00:58
本帖最後由 muska1116 於 2018-6-11 01:01 編輯
你在最上面已經有宣告過全域變數
TextView txv;
RadioGroup ticketType;
所以在 onCreate 裡面不用再宣告一次,
TextView
txv = (TextView) findViewById(R.id.txv);
RadioGroup
ticketType = (RadioGroup) findViewById(R.id.ticketType);
只要賦值給他就好
txv = (TextView) findViewById(R.id.txv);
ticketType = (RadioGroup) findViewById(R.id.ticketType);
不然 onCreate 裡的會只是與上面宣告同名的區域變數,真正 show 裡面呼叫的還是未賦值
歡迎光臨 Android 台灣中文網 (https://apk.tw/)
Powered by Discuz! X3.1