尝试使用listview实现共享首选项

时间:2015-04-10 20:51:54

标签: android listview sharedpreferences

有人可以告诉我这里我做错了什么吗?我为listview获取了一个空指针异常...我正在尝试使用共享首选项在我回到它时将值保存在listview中

道歉,如果它是一个愚蠢的问题,但从我的观点来看,一切都是初始化的,没有什么是空的,所以如果其他人能发现问题会很好:{)

    public class MainActivity3 extends MainActivity{

    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.editText5);
    lv = (ListView) findViewById(R.id.listView2);
    addButton = (Button) findViewById(R.id.button21);


    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
        if (display.getText().toString().equals("")) {
        }

        else {
            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");

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

}

道歉,如果它是一个愚蠢的问题,但从我的观点来看,一切都是初始化的,没有什么是空的,所以如果其他人能发现问题会很好:{)

     <ListView
    android:layout_width="wrap_content"
    android:layout_height="359dp"
    android:id="@+id/listView2"
    android:layout_alignParentTop="true"
    android:layout_toStartOf="@+id/button21"
    android:layout_alignRight="@+id/editText6"
    android:layout_alignEnd="@+id/editText6" />

1 个答案:

答案 0 :(得分:0)

你能在这里放置你的布局代码吗?因为组件的名称不太好,所以,也许,你可以在另一个布局中调用另一个listView。

当你有android.R时,你可以尝试删除你的导入行吗?然后,导入正确的。

如果这不起作用,请填写布局代码,请:)

我正在考虑另一种解决方案。转到listView并给它这个id:

android:id="@android:id/list"

然后,转到MainActivity并写下:

public class YourClass extends ListActivity

因此,要访问listView,您只需使用下一个方法:

getListView();

如果您想了解更多信息,请参阅官方文档here

我希望它有效