Ich habe einige Einstellungen erfolgreich neu geladen, wenn der Benutzer die Zurück-Taste am Telefon drückt. Wenn dies geschieht, speichere ich ihren Standort und das erste Element in einer Liste. Jetzt wird die Liste durch Drücken einer Bildschaltfläche erzeugt. Sobald die Liste erstellt wurde, können Sie auf ein Element drücken und es wird eine neue Klasse geladen.Listenelement wird nicht gestartet Aktivität beim erneuten Laden unter Gemeinsame Einstellungen
Aber wenn ich die Informationen aus der Liste abrufen und darauf klicken, stürzt die App ab und gibt mir eine Null-Zeiger-Ausnahme. Ich bin mir bewusst, was das ist, kann aber nicht verstehen warum. Hier ist mein Code:
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.new_sightings);
// Initialize location
user_lat_Value = (TextView)findViewById(R.id.lat_Value);
user_long_Value = (TextView)findViewById(R.id.long_Value);
// Have not received coordinates yet
gotCoord = false;
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, listItems);
setListAdapter(adapter);
SharedPreferences settings = getSharedPreferences(PREFS_NAME,0);
if(settings.contains("ARRAY_LIST_VALUE_0") || settings.contains("LAT"))
{
user_lat_Value.setText(settings.getString("LAT", myNewLat));
user_long_Value.setText(settings.getString("LONG", myNewLon));
listItems.add(settings.getString("ARRAY_LIST_VALUE_0",tempStore));
adapter.notifyDataSetChanged();
}
reload = (Button)findViewById(R.id.reloadTen);
reload.setOnClickListener(this);
list = getListView();
list.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
// Start an activity based on what list view item is pressed
Intent intent = new Intent(newSightings.this, newCompass.class);
// Pass the data we retrieved to the next activity
intent.putExtra("info",data[position] );
startActivity(intent);
}
});
list.setTextFilterEnabled(true);
}
@Override
protected void onStop()
{
super.onStop();
gotCoord = false;
SharedPreferences settings = getSharedPreferences(PREFS_NAME,0);
SharedPreferences.Editor editor = settings.edit();
// Store the latitude and longitude values and then reload them if known
editor.putString("LAT",myNewLat);
editor.putString("LONG",myNewLon);
// Place first element of array list in storage
if(adapter.getCount() > 0)
{
Toast.makeText(getApplicationContext(), "Leaving Activity, Adapter Size: "+ adapter.getCount()+"\nStoring: "+listItems.get(0).toString(), Toast.LENGTH_SHORT).show();
tempStore = listItems.get(0).toString();
editor.putString("ARRAY_LIST_VALUE_0",tempStore);
/**
for(int i = 0; i < storeList.length; i++)
{
storeList[i] = listItems.get(i).toString();
editor.putString("ARRAY_LIST_VALUE_"+i, listItems.get(i).toString());
}
*/
}
editor.commit();
}
mich korrigieren, wenn ich falsch bin, sondern weil ich die Daten in der Liste Adapter neu zu laden und drücken Sie sollte es nicht das Verhalten eines Elements in der Liste imitieren, wenn sie hatte gerade geladen worden ?
Ich bin verwirrt..Any Wörter?
Prost
Was ist die Zeile der NullPointerException? – Samuel
Zeile 114 - Was ist die intention.putExtra() Zeile – Katana24