看板 AndroidDev 關於我們 聯絡資訊
如題 先上程式碼 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); abc(); cde(); } public void abc(){ CheckBox Checkboxa =(CheckBox) findViewById(R.id.checkBox1); CheckBox Checkboxb =(CheckBox) findViewById(R.id.checkBox2); CheckBox Checkboxc =(CheckBox) findViewById(R.id.checkBox3); CheckBox Checkboxd =(CheckBox) findViewById(R.id.checkBox4); CheckBox Checkboxe =(CheckBox) findViewById(R.id.checkBox5); CheckBox Checkboxf =(CheckBox) findViewById(R.id.checkBox6); Button buttona = (Button) findViewById(R.id.button1); } public void cde(){ Checkboxa.setOnCheckedChangeListener(new CheckBox.OnCheckedChangeListener() { public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if(Checkboxa.isChecked()){ Toast.makeText(MainActivity.this, "你選擇了"+Checkboxa.getText(), Toast.LENGTH_LONG).show(); 在編譯時cde涵式裡面的 Checkboxa 無法用到abc裡面的定義 請問是哪裡出了問題 新手發問請多多包涵 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.61.163.55 ※ 文章網址: http://www.ptt.cc/bbs/AndroidDev/M.1405583410.A.779.html
zxc190:定義在不同scope所以無法使用 兩個方法 07/17 16:23
zxc190:1.cde裡面重新宣告abc的checkbox 但是會有重複物件在記憶體 07/17 16:24
zxc190:2.將定義拉到全域變數裡面 07/17 16:24
ms0561188:可是那個不是public 是可以共用的嗎 不曉得能否可以從 07/17 16:26
ms0561188:另一個public 引用進來 還是我的觀念錯了? 07/17 16:26
Deltaguita:錯了 method裡面的變數只能在宣告的method內使用 07/17 17:07
Deltaguita:你要複用的話應該宣告在class裡面 跟public 沒有關係 07/17 17:07
Deltaguita:另外 小弟要建議你的變數命名除了變數最好使用小寫開頭 07/17 17:08
Deltaguita:這樣比較容易區分class 跟變數 07/17 17:10
Deltaguita:建議你java方便要找一些書來看 不然會寫得很辛苦 07/17 17:10
Deltaguita:public private protected 這三個google一下區別 07/17 17:12
Deltaguita:對了還有一個default 07/17 17:12
a020304888a:public是對其他class 不是自己本身其他的method 07/17 19:17
rj9rj9123:建議先讀點java的書,不然你會遇到瓶頸 07/18 22:50
ms0561188:謝謝大大 懂了!!! 感謝大家耐心回答 07/21 09:18