4

答えを探してみましたが、探していたものが見つかりませんでした。データを保存したり、SharedPreferences を使用したりするのはこれが初めてだったので、自分が何をしているのかよくわかりませんでした。要点は、ユーザーが EditText に何かを入力した後、それが ListView に入力されるようにすることでした。しかし、これが実行されると、アプリも文字列を保存して、ユーザーがアプリに再入力したときに LoadPreferences を使用できるようにしたいのです。これは起こりませんが

コード:

public class TaskPage extends SherlockActivity {

EditText display;
ListView lv;
ArrayAdapter<String> adapter;
Button addButton;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    display = (EditText) findViewById(R.id.editText1);
    lv = (ListView) findViewById(R.id.listView1);
    addButton = (Button) findViewById(R.id.button1);


    adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);
    lv.setAdapter(adapter);
    LoadPreferences();


    addButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            String task = display.getText().toString();


                adapter.add(task);
                adapter.notifyDataSetChanged();
                SavePreferences("LISTS", task);
        }
    });
}

protected void SavePreferences(String key, String value) {
    // TODO Auto-generated method stub
    SharedPreferences data = PreferenceManager.getDefaultSharedPreferences(this);
    SharedPreferences.Editor editor = data.edit();
    editor.putString(key, value);
    editor.commit();


}

protected void LoadPreferences(){
    SharedPreferences data = PreferenceManager.getDefaultSharedPreferences(this);
    String dataSet = data.getString("LISTS", "None Available");

}

私は何か間違ったことをしたと確信していますが、エラーはありません。そのため、アプリを実行すると、何も保存されないことを除いてすべてが機能します(または、ListViewに表示されないだけかもしれません)

どうすればこれを修正できますか?ありがとう!

4

1 に答える 1

3

LoadPreferences()メソッドを次のように変更します。

protected void LoadPreferences(){
    SharedPreferences data = PreferenceManager.getDefaultSharedPreferences(this);
    String dataSet = data.getString("LISTS", "None Available");

     adapter.add(dataSet);
     adapter.notifyDataSetChanged();
}

現在のコードでは、追加dataSet していませんArrayAdapter

于 2013-01-05T19:18:11.153 に答える