save und namen vergeben

  • 5 Antworten
  • Letztes Antwortdatum
G

guguli

Neues Mitglied
0
Hallo Leute,

ich hab ein kleines Spiel geschrieben, und möchte, dass wenn der user das spiel speichert, nach einem Namen gefragt wird.
Wie kann ich das angehen?

ich hab das mit Speichern so gelöst, und am ende hab ich das mit namen angeben gemacht. Das funktioniert aber nicht. kann einer helfen???
Code:
public void onSaveClicked() throws Exception {
		Log.d(LOG_TAG, "Save button clicked");

		MapEditorToField map2F = new MapEditorToField(this);
		// get the field JSON STRING
		String fieldJson = map2F.nextField();
		Intent returnIntent = new Intent();
		returnIntent.putExtra("FieldJson", fieldJson);

		// Set Result to the parent
		((Activity) mContext).setResult(android.app.Activity.RESULT_OK,
				returnIntent);

		// Close MapEditorActivity
		((Activity) this.mContext).finish();
		// specify the Map Name
		((Activity)mContext).runOnUiThread(new Runnable() {
			
			public void run() {
				mapEditorView.getSettingsDialog().setCancelable(true);
				mapEditorView.getSettingsDialog().setFirstTime(false);
				mapEditorView.getSettingsDialog().show();
				
			}
		});
}

kann da mir einer helfen???

THX
 
Wieso öffnest du nicht einfach ein neues Fenster mit ner textview& nem Button[speichern bestätigen] und speicherst dann alles?
 
ich dachte ich mach das mal mit nem Dialog, so braucht man keine neuen Activity...
 
ja so solltest du es eh machen :) nur falls sich keiner meldet :p
 
da wird zwar was angezeigt, aber verschwindet schnell wieder. :( wie kann ich das stoppen?
 
Ich hab eine neue Klasse Save Dialog erstellt und die Bedingung da rein geschrieben. ICh poste mal meine Klasse:
Code:
public class SaveDialog extends Dialog implements View.OnClickListener{

	private MapEditorView mapEditorView;
	private Context context;
	private Button save;
	private EditText editTextMap;
	private boolean exist;
	
	public SaveDialog(Context context, MapEditorView mapEditorView) {
		super(context);
		this.context = context;
		this.mapEditorView = mapEditorView;

		setContentView(R.layout.save_dialog);
		setTitle("Save");
		
		save = (Button) findViewById(R.id.Button_save_map);
		save.setOnClickListener(this);
		
		editTextMap = (EditText) findViewById(R.id.map_name);
		
		exist = true;
	}

	public void onClick(View v) {
		if (v.getId() == save.getId()) {
			if(exist){
				AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
						context);
				// set title
				alertDialogBuilder.setTitle("Are You sure?");
				// set dialog message
				alertDialogBuilder
				.setMessage("Current map Name will be overwritten!")
				.setCancelable(false)
				.setPositiveButton("Yes",
						new DialogInterface.OnClickListener() {
							public void onClick(DialogInterface dialog,
									int id) {
								
								mapEditorView.getEditMapRenderer().reNameMap(
										String.valueOf(editTextMap.getText().toString()));
										
								dismiss();

							}
						})
				.setNegativeButton("No",
						new DialogInterface.OnClickListener() {
							public void onClick(DialogInterface dialog,
									int id) {
								dialog.cancel();
							}
						});
				AlertDialog alertDialog = alertDialogBuilder.create();
				// show it
				alertDialog.show();
			}
			else{
				mapEditorView.getEditMapRenderer().reNameMap(String.valueOf(editTextMap.getText().toString()));
				this.dismiss();
			}
		}
	
	}
	public void setExist(boolean exist) {
		this.exist = exist;
	}

}

und die methode onSaveClick hab ich dann in der klasse MapEditorRanderer so implementiert:
Code:
public class MapEditorRenderer implements GLSurfaceView.Renderer {
...
	public void onSaveClicked() throws Exception {
		Log.d(LOG_TAG, "Save button clicked");

		((Activity)mContext).runOnUiThread(new Runnable() {
			
			public void run() {
				mapEditorView.getSaveDialog().setCancelable(true);
				mapEditorView.getSaveDialog().setExist(false);
				mapEditorView.getSaveDialog().show();
				
			}
		});
		MapEditorToField map2F = new MapEditorToField(this);
		// get the field JSON STRING
		String fieldJson = map2F.nextField();
		Intent returnIntent = new Intent();
		returnIntent.putExtra("FieldJson", fieldJson);

		
		// Set Result to the parent
		((Activity) mContext).setResult(android.app.Activity.RESULT_OK,
				returnIntent);

		// TODO: Maybe we need here to save created map to file system
		// Close MapEditorActivity
		
		
		((Activity) this.mContext).finish();
		// specify the Map Name
		

	}

das Problem ist dass ich eine NullPointerException bekomme und zwar in der Methode onSaveClick an dieser Stelle :
Code:
mapEditorView.getSaveDialog().setCancelable(true);

kann einer mir sagen wieso?????

THX
 
Zurück
Oben Unten