这是我在StackExchange的第一篇文章。 我是一个非常初学的Android开发人员。我正在制作一个用于保存数组(列表)的应用程序。但不幸的是,当我运行我的应用程序时,它显示{不幸的是,商店已停止!}。我对这个错误非常熟悉,很多时候我也能够通过它。但这一次,我无法弄清楚我做错了什么。我的代码看起来很完美但不知何故一直显示错误。 我正在粘贴下面的java代码。请仔细检查我的代码并指出我的错误! PLEASE〜!
AddItem.java
package com.rcube.shop;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;
import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class AddItem extends Activity{
SharedPreferences store = PreferenceManager.getDefaultSharedPreferences(getApplication());
SharedPreferences.Editor edit = store.edit();
ArrayList<String> itemarray = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.add_item);
Button addnewitem = (Button) findViewById(R.id.addnewitem);
final EditText getitemname = (EditText)findViewById(R.id.getitem);
addnewitem.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
String newitemname = getitemname.getText().toString();
if(newitemname.length()!=0){
itemarray.add(newitemname);
Set<String> itemset = new HashSet<String>(itemarray);
edit.putStringSet("items_set", itemset);
edit.commit();
}else{
Toast.makeText(AddItem.this, "Write Item name before submitting!", Toast.LENGTH_LONG).show();
}
}
});
}
}
请告诉我我做错了什么。我也在Android Manifest中添加了新的android活动,所以这个错误不是因为这个。 再次感谢! 和平〜!
答案 0 :(得分:4)
好像你正在getApplicationContect()
在onCreate
setContentView
SharedPreferences store = PreferenceManager.getDefaultSharedPreferences(getApplication());
SharedPreferences.Editor edit = store.edit();
在此之前你不会得到上下文。
希望这有帮助。
答案 1 :(得分:0)
在findViewById之后将这两行放在onCreate()
内,然后你可以使用上下文。
SharedPreferences store = PreferenceManager.getDefaultSharedPreferences(getApplication());
SharedPreferences.Editor edit = store.edit();