【发布时间】:2015-04-10 20:51:54
【问题描述】:
有人可以告诉我我在这里做错了什么吗?我的列表视图出现空指针异常...当我回到列表视图时,我正在尝试使用共享首选项将值保留在列表视图中
抱歉,如果这是一个愚蠢的问题,但在我看来,一切都已初始化,没有任何不应该是空的,所以如果其他人能发现这个问题,那就太好了:{)
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" />
【问题讨论】:
-
发布堆栈跟踪。
-
你确定在activity_main.xml中有一个id为listView2的listview吗?
-
一个好的第一步是转到发生 NPE 的行。此行号将显示在您的异常旁边的 logcat 中。 NPE 有很多可能性,知道它发生在哪里将为您指明正确的方向。如果您的代码格式正确,那就太好了...
-
引起:java.lang.NullPointerException:尝试在 com.example.pp 的空对象引用上调用虚拟方法 'void android.widget.ListView.setAdapter(android.widget.ListAdapter)' .application.MainActivity3.onCreate(MainActivity3.java:41)
-
是的 leiter0499 有一个具有该 ID 的列表视图
标签: android listview sharedpreferences