2
初學者在android編程在這裏。我正在編寫一個具有性別/身高/體重設置頁面的應用程序,並且計算這些信息並將其傳遞給另一個活動(主要活動)。試圖加載微調位置/值導致崩潰在Integer.parseInt()
當用戶返回到設置頁面時,它將加載用戶之前輸入的所有值。目前加載我的EditText字段時沒有問題,但性別使用Spinner(男性/女性),Settings輸入代碼時會崩潰。
它似乎在Integer.parseInt()崩潰。
在此先感謝!
從按鈕偵聽摘錄
btnSave = (Button) this.findViewById(R.id.btn_save);
btnSave.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
.
.
.
savePreferences("storedAge", inputAge.getText().toString());
savePreferences("storedHeight", inputHeight.getText().toString());
savePreferences("storedWeight", inputWeight.getText().toString());
savePreferences("storedBMR", String.valueOf(myBMR));
int userChoice = chooseGender.getSelectedItemPosition();
savePreferences("storedGender",Integer.toString(userChoice));
savePreferences
private void savePreferences(String key, String value) {
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
Editor editor = sharedPreferences.edit();
editor.putString(key, value);
editor.commit();
}
loadPreferences
private void loadSavedPreferences(){
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
String age = sharedPreferences.getString("storedAge", "");
inputAge.setText(age);
String weight = sharedPreferences.getString("storedWeight", "");
inputWeight.setText(weight);
String height = sharedPreferences.getString("storedHeight", "");
inputHeight.setText(height);
String gender = sharedPreferences.getString("storedGender", "");
Integer genderValue = Integer.parseInt(gender);
chooseGender.setSelection(genderValue);
}
嘗試了艾米特的建議,但仍然崩潰。登錄如下貓:
01-31 13:43:29.576: E/SurfaceFlinger(37): ro.sf.lcd_density must be defined as a build property
01-31 13:43:30.158: E/SurfaceFlinger(37): ro.sf.lcd_density must be defined as a build property
01-31 13:43:54.516: E/ActivityThread(609): Service com.android.exchange.ExchangeService has leaked ServiceConnection [email protected]f08b0 that was originally bound here
01-31 13:43:54.516: E/ActivityThread(609): android.app.ServiceConnectionLeaked: Service com.android.exchange.ExchangeService has leaked ServiceConnection [email protected]f08b0 that was originally bound here
01-31 13:43:54.516: E/ActivityThread(609): at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:969)
01-31 13:43:54.516: E/ActivityThread(609): at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:863)
01-31 13:43:54.516: E/ActivityThread(609): at android.app.ContextImpl.bindService(ContextImpl.java:1418)
01-31 13:43:54.516: E/ActivityThread(609): at android.app.ContextImpl.bindService(ContextImpl.java:1407)
01-31 13:43:54.516: E/ActivityThread(609): at android.content.ContextWrapper.bindService(ContextWrapper.java:473)
01-31 13:43:54.516: E/ActivityThread(609): at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:157)
01-31 13:43:54.516: E/ActivityThread(609): at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:145)
01-31 13:43:54.516: E/ActivityThread(609): at com.android.emailcommon.service.AccountServiceProxy.getDeviceId(AccountServiceProxy.java:116)
01-31 13:43:54.516: E/ActivityThread(609): at com.android.exchange.ExchangeService.getDeviceId(ExchangeService.java:1249)
01-31 13:43:54.516: E/ActivityThread(609): at com.android.exchange.ExchangeService$7.run(ExchangeService.java:1856)
01-31 13:43:54.516: E/ActivityThread(609): at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:551)
01-31 13:43:54.516: E/ActivityThread(609): at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:549)
01-31 13:43:54.516: E/ActivityThread(609): at android.os.AsyncTask$2.call(AsyncTask.java:287)
01-31 13:43:54.516: E/ActivityThread(609): at java.util.concurrent.FutureTask.run(FutureTask.java:234)
01-31 13:43:54.516: E/ActivityThread(609): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
01-31 13:43:54.516: E/ActivityThread(609): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
01-31 13:43:54.516: E/ActivityThread(609): at java.lang.Thread.run(Thread.java:856)
01-31 13:43:54.526: E/StrictMode(609): null
01-31 13:43:54.526: E/StrictMode(609): android.app.ServiceConnectionLeaked: Service com.android.exchange.ExchangeService has leaked ServiceConnection [email protected]f08b0 that was originally bound here
01-31 13:43:54.526: E/StrictMode(609): at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:969)
01-31 13:43:54.526: E/StrictMode(609): at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:863)
01-31 13:43:54.526: E/StrictMode(609): at android.app.ContextImpl.bindService(ContextImpl.java:1418)
01-31 13:43:54.526: E/StrictMode(609): at android.app.ContextImpl.bindService(ContextImpl.java:1407)
01-31 13:43:54.526: E/StrictMode(609): at android.content.ContextWrapper.bindService(ContextWrapper.java:473)
01-31 13:43:54.526: E/StrictMode(609): at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:157)
01-31 13:43:54.526: E/StrictMode(609): at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:145)
01-31 13:43:54.526: E/StrictMode(609): at com.android.emailcommon.service.AccountServiceProxy.getDeviceId(AccountServiceProxy.java:116)
01-31 13:43:54.526: E/StrictMode(609): at com.android.exchange.ExchangeService.getDeviceId(ExchangeService.java:1249)
01-31 13:43:54.526: E/StrictMode(609): at com.android.exchange.ExchangeService$7.run(ExchangeService.java:1856)
01-31 13:43:54.526: E/StrictMode(609): at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:551)
01-31 13:43:54.526: E/StrictMode(609): at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:549)
01-31 13:43:54.526: E/StrictMode(609): at android.os.AsyncTask$2.call(AsyncTask.java:287)
01-31 13:43:54.526: E/StrictMode(609): at java.util.concurrent.FutureTask.run(FutureTask.java:234)
01-31 13:43:54.526: E/StrictMode(609): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
01-31 13:43:54.526: E/StrictMode(609): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
01-31 13:43:54.526: E/StrictMode(609): at java.lang.Thread.run(Thread.java:856)
01-31 13:43:54.546: E/ActivityThread(609): Service com.android.exchange.ExchangeService has leaked ServiceConnection [email protected]e27f0 that was originally bound here
01-31 13:43:54.546: E/ActivityThread(609): android.app.ServiceConnectionLeaked: Service com.android.exchange.ExchangeService has leaked ServiceConnection [email protected]e27f0 that was originally bound here
01-31 13:43:54.546: E/ActivityThread(609): at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:969)
01-31 13:43:54.546: E/ActivityThread(609): at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:863)
01-31 13:43:54.546: E/ActivityThread(609): at android.app.ContextImpl.bindService(ContextImpl.java:1418)
01-31 13:43:54.546: E/ActivityThread(609): at android.app.ContextImpl.bindService(ContextImpl.java:1407)
01-31 13:43:54.546: E/ActivityThread(609): at android.content.ContextWrapper.bindService(ContextWrapper.java:473)
01-31 13:43:54.546: E/ActivityThread(609): at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:157)
01-31 13:43:54.546: E/ActivityThread(609): at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:145)
01-31 13:43:54.546: E/ActivityThread(609): at com.android.emailcommon.service.ServiceProxy.test(ServiceProxy.java:191)
01-31 13:43:54.546: E/ActivityThread(609): at com.android.exchange.ExchangeService$7.run(ExchangeService.java:1850)
01-31 13:43:54.546: E/ActivityThread(609): at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:551)
01-31 13:43:54.546: E/ActivityThread(609): at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:549)
01-31 13:43:54.546: E/ActivityThread(609): at android.os.AsyncTask$2.call(AsyncTask.java:287)
01-31 13:43:54.546: E/ActivityThread(609): at java.util.concurrent.FutureTask.run(FutureTask.java:234)
01-31 13:43:54.546: E/ActivityThread(609): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
01-31 13:43:54.546: E/ActivityThread(609): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
01-31 13:43:54.546: E/ActivityThread(609): at java.lang.Thread.run(Thread.java:856)
01-31 13:43:54.567: E/StrictMode(609): null
01-31 13:43:54.567: E/StrictMode(609): android.app.ServiceConnectionLeaked: Service com.android.exchange.ExchangeService has leaked ServiceConnection [email protected]e27f0 that was originally bound here
01-31 13:43:54.567: E/StrictMode(609): at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:969)
01-31 13:43:54.567: E/StrictMode(609): at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:863)
01-31 13:43:54.567: E/StrictMode(609): at android.app.ContextImpl.bindService(ContextImpl.java:1418)
01-31 13:43:54.567: E/StrictMode(609): at android.app.ContextImpl.bindService(ContextImpl.java:1407)
01-31 13:43:54.567: E/StrictMode(609): at android.content.ContextWrapper.bindService(ContextWrapper.java:473)
01-31 13:43:54.567: E/StrictMode(609): at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:157)
01-31 13:43:54.567: E/StrictMode(609): at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:145)
01-31 13:43:54.567: E/StrictMode(609): at com.android.emailcommon.service.ServiceProxy.test(ServiceProxy.java:191)
01-31 13:43:54.567: E/StrictMode(609): at com.android.exchange.ExchangeService$7.run(ExchangeService.java:1850)
01-31 13:43:54.567: E/StrictMode(609): at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:551)
01-31 13:43:54.567: E/StrictMode(609): at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:549)
01-31 13:43:54.567: E/StrictMode(609): at android.os.AsyncTask$2.call(AsyncTask.java:287)
01-31 13:43:54.567: E/StrictMode(609): at java.util.concurrent.FutureTask.run(FutureTask.java:234)
01-31 13:43:54.567: E/StrictMode(609): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
01-31 13:43:54.567: E/StrictMode(609): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
01-31 13:43:54.567: E/StrictMode(609): at java.lang.Thread.run(Thread.java:856)
@ altern4te線你的問題解決了嗎? –
剛剛嘗試過,仍然崩潰,這次是整個應用程序而不是僅僅是活動。 – altern4te
@ altern4te顯示崩潰日誌。 –