2016-04-02 15 views
0

Bu sadece basit bir uygulamadır, ancak SharedPreferences ile bazı yardıma ihtiyacım var. Neden işe yaramıyor?Bu paylaşılan özelliği nasıl düzeltebilirim?

İşte benim java sınıfım.

burada catlog, özel durumu anlamıyorum. Birisi bana biraz açıklamama yardımcı olabilir mi?

FATAL EXCEPTION: main 
Process: com.example.jinyu.practice, PID: 4573 
java.lang.NullPointerException: Attempt to invoke virtual method 'android.text.Editable android.widget.EditText.getText()' on a null object reference 
at com.example.jinyu.practice.MainActivity$1.onClick(MainActivity.java:28) 
at android.view.View.performClick(View.java:5198) 
at android.view.View$PerformClick.run(View.java:21147) 
at android.os.Handler.handleCallback(Handler.java:739) 
at android.os.Handler.dispatchMessage(Handler.java:95) 
at android.os.Looper.loop(Looper.java:148) 
at android.app.ActivityThread.main(ActivityThread.java:5417) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
+1

, hata çok net SharedPreferences ilgili değildir :) ait –

+0

Basit vaka NPE .... hiç bir SharedPreferences sorunu değil. – Rohan

cevap

1

bu başlatın: private EditText name; böyle

şey: Sadece logcat okursanız

setContentView(R.layout.activity_main); //after this 
name = (EditText)findViewById(R.id.edit_text); 
+0

Oh, ne aptal bir problem. Çok teşekkürler. –

+0

@WuJinyu Sorun yok, olur. Cevap btw'yi kabul edebilir misin? :) –

+0

tabiki :) 7 dakika sonra. –

0
Try This 

In your source code you are declare the EditText object but you are not 

initilise this EditText before you are geting the value using getText() 

method so you get this NullPointerException Exception. 

change like this 

public class MainActivity extends AppCompatActivity { 
private Button display; 
private EditText name; 
private TextView text; 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    final SharedPreferences file = getSharedPreferences("lol", MODE_PRIVATE); 
    final SharedPreferences.Editor editor = file.edit(); 
    display = (Button)findViewById(R.id.display); 
    text = (TextView) findViewById(R.id.texttext); 
    name== (EditText)findViewById(R.id.edit_text); 
    display.setOnClickListener(
      new View.OnClickListener() { 
       public void onClick(View v) { 
       String kk = name.getText().toString().trim(); 
        editor.putString("username ", kk); 
        editor.commit(); 
        text.setText(
          file.getString("username","") 
        ); 
       } 
      } 
    ); 
} 
} 
İlgili konular