Des Chaînes d'affichage à partir d'une liste de tableaux sur android

Actuellement, j'ai deux dans mon android en place. Le MainActivity page affiche les notifications toast et je veux que mon HistoryActivity page afin d'afficher toutes les toasts. Avant de m'envoyer un toast à partir de mon MainActivity page je l'ai enregistrer dans la liste de tableaux. Alors, je veux afficher toutes les chaînes dans cette liste de tableaux sur le HistoryActivity page. Je ne suis pas sûr de savoir comment construire une textview et comment intégrer le textview avec les chaînes dans la liste de tableaux. S'Il Vous Plaît Aider.

Je pense aussi que j'ai besoin d'ajouter quelque chose à mon fichiers xml, mais je ne suis pas sûr de ça aussi. Merci.

Le code actuel ressemble à ça pour le MainActivity page.

import java.util.ArrayList;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.Toast;
public class MainActivity extends Activity {
private ContextCoreConnector contextCoreConnector;
private ContextPlaceConnector contextPlaceConnector;
private ArrayList<String> locations;
//Initializing contextPlaceConnector here, I initialize PlaceEventListener below and the logic for when a geofence is broken is below.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
contextCoreConnector = ContextCoreConnectorFactory.get(this);
contextPlaceConnector = ContextPlaceConnectorFactory.get(this);
checkContextConnectorStatus();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
private PlaceEventListener placeEventListener = new PlaceEventListener() {
@Override
public void placeEvent(PlaceEvent event) {
String placeNameAndIdCurrent = " You are now at " + event.getPlace().getPlaceName() + ". The ID number of this location is " + event.getPlace().getId();
String placeNameId = "Location is "+event.getPlace().getPlaceName() +". The ID number of this location is " + event.getPlace().getId();
Toast toast = Toast.makeText(getApplicationContext(), placeNameAndIdCurrent, Toast.LENGTH_LONG);//changed from Toast.LENGTH_LONG
toast.show();
Log.i("found place", placeNameAndIdCurrent);
locations= new ArrayList<String>();
locations.add(placeNameId);
}
};
private void checkContextConnectorStatus() {
if (contextCoreConnector.isPermissionEnabled()) {
//Gimbal is already enabled
startListeningForGeofences();
}
else {
contextCoreConnector.enable(this, new Callback<Void>() {
@Override
public void success(Void arg0) {
startListeningForGeofences();
//Gimbal is ready
}
@Override
public void failure(int arg0, String arg1) {
Log.e("failed to enable", arg1);
}
});
}
}
private void startListeningForGeofences() {
contextPlaceConnector.addPlaceEventListener(placeEventListener);
}
@Override
protected void onResume() {
super.onResume(); 
contextCoreConnector.setCurrentActivity(this);
}
@Override
protected void onPause() {
super.onPause(); contextCoreConnector.setCurrentActivity(null);
}
public void sendHistory(View view){
Intent intent = new Intent(this, HistoryActivity.class);
//EditText editText = (EditText) findViewById(R.id.edit_message);
intent.putStringArrayListExtra("key", locations);
startActivity(intent);  
}
public void sendLogin(View view){
Intent intent = new Intent(this, LoginActivity.class);
//EditText editText = (EditText) findViewById(R.id.edit_message);
startActivity(intent);  
}
//return arrayList so that it can be used in other classes
public ArrayList<String> getList(){
return locations;
}

Puis le HistoryActivity page ressemble à ceci.

import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.LinearLayout;
import android.widget.TextView;
public class HistoryActivity extends Activity {
//private MainActivity Mac;
private TextView myText = null;
ArrayList<String> list = getIntent().getStringArrayListExtra("key");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_history);
LinearLayout lView = new LinearLayout(this);
myText= new TextView(this);
lView.addView(myText);
for (int i=0; i<list.size();i++){
myText.append(list.get(i));
myText.append("\n");
}
setContentView(lView);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.history, menu);
return true;
}

Maintenant j'obtiens cette erreur.

01-31 01:28:25.675: E/AndroidRuntime(14623): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{concertpass.app/concertpass.app.HistoryActivity}: java.lang.NullPointerException
01-31 01:28:25.675: E/AndroidRuntime(14623):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585)
01-31 01:28:25.675: E/AndroidRuntime(14623):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
01-31 01:28:25.675: E/AndroidRuntime(14623):    at android.app.ActivityThread.access$2300(ActivityThread.java:125)
01-31 01:28:25.675: E/AndroidRuntime(14623):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
01-31 01:28:25.675: E/AndroidRuntime(14623):    at android.os.Handler.dispatchMessage(Handler.java:99)
01-31 01:28:25.675: E/AndroidRuntime(14623):    at android.os.Looper.loop(Looper.java:123)
01-31 01:28:25.675: E/AndroidRuntime(14623):    at android.app.ActivityThread.main(ActivityThread.java:4627)
01-31 01:28:25.675: E/AndroidRuntime(14623):    at java.lang.reflect.Method.invokeNative(Native Method)
01-31 01:28:25.675: E/AndroidRuntime(14623):    at java.lang.reflect.Method.invoke(Method.java:521)
01-31 01:28:25.675: E/AndroidRuntime(14623):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
01-31 01:28:25.675: E/AndroidRuntime(14623):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
01-31 01:28:25.675: E/AndroidRuntime(14623):    at dalvik.system.NativeStart.main(Native Method)
01-31 01:28:25.675: E/AndroidRuntime(14623): Caused by: java.lang.NullPointerException
01-31 01:28:25.675: E/AndroidRuntime(14623):    at concertpass.app.HistoryActivity.<init>(HistoryActivity.java:15)
01-31 01:28:25.675: E/AndroidRuntime(14623):    at java.lang.Class.newInstanceImpl(Native Method)
01-31 01:28:25.675: E/AndroidRuntime(14623):    at java.lang.Class.newInstance(Class.java:1429)
01-31 01:28:25.675: E/AndroidRuntime(14623):    at android.app.Instrumentation.newActivity(Instrumentation.java:1023)
01-31 01:28:25.675: E/AndroidRuntime(14623):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577)
<activity
android:name="concertpass.app.HistoryActivity"
android:label="@string/title_activity_history" >
</activity>

Merci encore.

  • emplacements= new ArrayList<String>(); faites ceci en oncreate au lieu de placeEvent
  • Vous pouvez utiliser JSONObject et JSONArray au lieu de ArrayList
  • sa s NUllPointerException. Donc, après la pleine stacktrace il n'est pas nécessaire de publier le manifeste. il y aura causé par la partie qui indique la cause
  • vous ne pouvez pas isntantiate une activité de classe. veuillez lire Raghav Sood la réponse ici stackoverflow.com/questions/14956018/....
InformationsquelleAutor user3014093 | 2014-01-28