我试图将事件处理代码与我的MainActivity
类分开。因此,我创建了一个名为ButtonHandler
的类来实现View.OnClickListener
:
public class ButtonHandler implements View.OnClickListener {
@Override
public void onClick(View v){
EditText txtCorpoToday = (EditText) v.findViewById(R.id.txtCorpoToday);
txtCorpoToday.setText("changing text");
}
但由于一些奇怪的原因,该应用程序粉碎了emulator
。我试图找出问题所在,但logcat console
给了我这个错误:
7-22 01:11:58.669 2823-2839/android.process.acore I/ContactLocale﹕ AddressBook Labels [en-US]: [, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, Α, Β, Γ, Δ, Ε, Ζ, Η, Θ, Ι, Κ, Λ, Μ, Ν, Ξ, Ο, Π, Ρ, Σ, Τ, Υ, Φ, Χ, Ψ, Ω, , А, Б, В, Г, Д, Ђ, Е, Є, Ж, З, И, І, Ї, Й, Ј, К, Л, Љ, М, Н, Њ, О, П, Р, С, Т, Ћ, У, Ф, Х, Ц, Ч, Џ, Ш, Щ, Ю, Я, , א, ב, ג, ד, ה, ו, ז, ח, ט, י, כ, ל, מ, נ, ס, ע, פ, צ, ק, ר, ש, ת, , ا, ب, ت, ث, ج, ح, خ, د, ذ, ر, ز, س, ش, ص, ض, ط, ظ, ع, غ, ف, ق, ك, ل, م, ن, ه, و, ي, , ก, ข, ฃ, ค, ฅ, ฆ, ง, จ, ฉ, ช, ซ, ฌ, ญ, ฎ, ฏ, ฐ, ฑ, ฒ, ณ, ด, ต, ถ, ท, ธ, น, บ, ป, ผ, ฝ, พ, ฟ, ภ, ม, ย, ร, ฤ, ล, ฦ, ว, ศ, ษ, ส, ห, ฬ, อ, ฮ, , ㄱ, ㄴ, ㄷ, ㄹ, ㅁ, ㅂ, ㅅ, ㅇ, ㅈ, ㅊ, ㅋ, ㅌ, ㅍ, ㅎ, , あ, か, さ, た, な, は, ま, や, ら, わ, #, ]
07-22 01:20:28.870 2823-2830/android.process.acore I/art﹕ Debugger is no longer active
07-22 02:12:42.475 2823-2837/android.process.acore V/BackupServiceBinder﹕ doBackup() invoked
07-22 02:12:42.477 2823-2837/android.process.acore E/DictionaryBackupAgent﹕ Couldn't read from the cursor
07-22 04:29:17.419 2823-2830/android.process.acore I/art﹕ Debugger is no longer active
最后,我这样做是因为随着应用程序的增长,我发现我的MainActivity
类变得臃肿而且很混乱。最好的办法是什么?
谢谢!
答案 0 :(得分:0)
您尝试使用错误的EditText
初始化View
。
OnClick(View v)
其中v
为Button
或其他View
已被按下。并且它本身不能包含EditText
。如果您在Fragment
中工作,请尝试onCreateView
View view = View.inflate(getActivity(), R.layout.yours_layour, null);
EditText txtCorpoToday = (EditText) view.findViewById(R.id.txtCorpoToday);
或Activity
onCreate
EditText txtCorpoToday = (EditText)findViewById(R.id.txtCorpoToday);
答案 1 :(得分:0)
findViewById应该用于在其父级中查找视图。当调用onClick时,v将是您单击的按钮。