我調試我的應用程序,並得到這個errorline:通過SharedPreferences/logcat的錯誤
java.lang.NullPointerException
at com.simonic.filmstudio.LogActivity$1.onClick(LogActivity.java:42)
at android.view.View.performClick(View.java:4752)
at android.view.View$PerformClick.run(View.java:19561)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:146)
at android.app.ActivityThread.main(ActivityThread.java:5635)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107)
at dalvik.system.NativeStart.main(Native Method)
Log.Activity.java:42
是該行:editor = sharedPrefs.edit();
這是代碼的其餘部分:
package com.simonic.filmstudio;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class LogActivity extends Activity {
//Buttons
Button startbutton;
//Variablen
EditText edtext;
String pname;
//Daten
SharedPreferences sharedPrefs;
SharedPreferences.Editor editor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
//Buttons
startbutton = (Button)findViewById(R.id.startbutt);
//EDTEXT
edtext = (EditText)findViewById(R.id.editText); //SpielerName
startbutton.setOnClickListener(new View.OnClickListener() { //Register Start Button
@Override
public void onClick(View v) {
if (edtext.getText().toString().trim().isEmpty()) {
Toast toast = new Toast(getApplicationContext());
toast.setGravity(100, 100, 100);
String nopname = "@string/nopname";
Toast.makeText(LogActivity.this, nopname, Toast.LENGTH_SHORT).show();
} else {
editor = sharedPrefs.edit();
pname = edtext.getText().toString();
editor.putString("pname", pname);
editor.putBoolean("regstat", true);
editor.apply();
startStudac();
}
}
});
}
public void startStudac(){
Intent intent = new Intent(LogActivity.this, StudioReg.class);
startActivity(intent);
overridePendingTransition(R.anim.abc_fade_in, R.anim.abc_fade_out);
}
@Override
protected void onStart() {
super.onStart();
}
@Override
protected void onRestart() {
super.onRestart();
}
@Override
protected void onResume() {
super.onResume();
}
@Override
protected void onPause() {
super.onPause();
}
@Override
protected void onStop() {
super.onStop();
}
@Override
protected void onDestroy() {
super.onDestroy();
}
}
我希望你能幫我!
是的,但在其他任何情況下在XML文件等它的工作原理與「@字符串/ nopname」例如按鈕......我想我的應用程序在其他語言翻譯因此我必須用字符串來完成。 爲什麼在這種情況下不能使用@string? 你能幫我解決我的主要問題嗎?共享的首選項? –