[問題] public無法用的問題

看板AndroidDev作者 (說說TIES OR CONDITIONS )時間10年前 (2014/07/17 15:50), 編輯推噓3(3012)
留言15則, 5人參與, 最新討論串1/1
如題 先上程式碼 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

07/17 16:23, , 1F
定義在不同scope所以無法使用 兩個方法
07/17 16:23, 1F

07/17 16:24, , 2F
1.cde裡面重新宣告abc的checkbox 但是會有重複物件在記憶體
07/17 16:24, 2F

07/17 16:24, , 3F
2.將定義拉到全域變數裡面
07/17 16:24, 3F

07/17 16:26, , 4F
可是那個不是public 是可以共用的嗎 不曉得能否可以從
07/17 16:26, 4F

07/17 16:26, , 5F
另一個public 引用進來 還是我的觀念錯了?
07/17 16:26, 5F

07/17 17:07, , 6F
錯了 method裡面的變數只能在宣告的method內使用
07/17 17:07, 6F

07/17 17:07, , 7F
你要複用的話應該宣告在class裡面 跟public 沒有關係
07/17 17:07, 7F

07/17 17:08, , 8F
另外 小弟要建議你的變數命名除了變數最好使用小寫開頭
07/17 17:08, 8F

07/17 17:10, , 9F
這樣比較容易區分class 跟變數
07/17 17:10, 9F

07/17 17:10, , 10F
建議你java方便要找一些書來看 不然會寫得很辛苦
07/17 17:10, 10F

07/17 17:12, , 11F
public private protected 這三個google一下區別
07/17 17:12, 11F

07/17 17:12, , 12F
對了還有一個default
07/17 17:12, 12F

07/17 19:17, , 13F
public是對其他class 不是自己本身其他的method
07/17 19:17, 13F

07/18 22:50, , 14F
建議先讀點java的書,不然你會遇到瓶頸
07/18 22:50, 14F

07/21 09:18, , 15F
謝謝大大 懂了!!! 感謝大家耐心回答
07/21 09:18, 15F
文章代碼(AID): #1Jnu0oTv (AndroidDev)