AlertDialog

  • 2 Antworten
  • Letztes Antwortdatum
G

guguli

Neues Mitglied
0
Hi leute ich brauch ganz dringend Hilfe.
ich will ein AlertDialog erstellen wenn ich auf den Display klicke. (Also ohne Button) dazu hab ich OnTouchListener gemacht. aber irgendwie sehe ich meine Items nicht. also ich sehe eingelich gar nichts :(.. hab das in Activity gemacht, ich hab auch ne View klasse.
ich poste die Activity klasse:
Code:
public class MapEditorActivity extends Activity implements OnTouchListener{

	private GLSurfaceView mGLSurfaceView;
	
	MapEditorRenderer editMapRenderer;
	// we have a maximum of 5 pointer
		private int[] coordsX = new int[5];
		private int[] coordsY = new int[5];

		// we have to save first touch for motion
		private int[] coordsXFirst = new int[5];
		private int[] coordsYFirst = new int[5];

		// offsets for view
		private float offX;
		private float offY;
		private float offZ;
		Context context;
		boolean zooming;
	Region dialogRegion;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
				WindowManager.LayoutParams.FLAG_FULLSCREEN);
		this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
		// Create our Preview view and set it as the content of our
		// Activity
		mGLSurfaceView = new MapEditorView(this);
		
		
		
		setContentView(mGLSurfaceView);
		mGLSurfaceView.setOnTouchListener(MapEditorActivity.this);
		
		
		
	}

	private void showDialog(){
		
		AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
		final String[] color = { "#F5F6F6", "#FFC0CB", "#FF0000", 
				"#C00000","#62492F","#DB3C00", "#98E01C" };
		dialogBuilder.setTitle("pick one Color");
		dialogBuilder.setItems(color, new DialogInterface.OnClickListener() {
			
			public void onClick(DialogInterface dialog, int which) {
				
				Toast.makeText(getApplicationContext(),color[which], Toast.LENGTH_SHORT).show();
			}
		});
		AlertDialog alertDialog = dialogBuilder.create();
		alertDialog.show();
	}
	@Override
	protected void onPause() {
		super.onPause();
		mGLSurfaceView.onPause();
	}

	@Override
	protected void onResume() {
		super.onResume();
		mGLSurfaceView.onResume();
	}

	public boolean onTouch(View v, MotionEvent event) {
		
		switch (event.getAction() & MotionEvent.ACTION_MASK) {
		case MotionEvent.ACTION_DOWN:
			offX = editMapRenderer.getxView();
			offY = editMapRenderer.getyView();
			coordsXFirst[0] = (int) event.getX(0);
			coordsYFirst[0] = (int) event.getY(0);
			
			showDialog();
			break;
		case MotionEvent.ACTION_POINTER_DOWN:
			offZ = editMapRenderer.getzView();
			coordsXFirst[0] = (int) event.getX(0);
			coordsYFirst[0] = (int) event.getY(0);
			coordsXFirst[1] = (int) event.getX(1);
			coordsYFirst[1] = (int) event.getY(1);
			zooming=true;
			break;
		case MotionEvent.ACTION_UP:
			zooming=false;
			break;

		default:

			// track all touches
			for (int i = 0; i < event.getPointerCount(); i++) {
				int id = event.getPointerId(i);

				// update all other pointer positions
				coordsX[id] = (int) event.getX(i);
				coordsY[id] = (int) event.getY(i);

			}

			// When only one finger
			if (event.getPointerCount() == 1 && !zooming)
				editMapRenderer.setPosition(offX
						+ (coordsX[0] - coordsXFirst[0])*editMapRenderer.getzView()*-1 / 1000.0f, offY
						+ (coordsYFirst[0] - coordsY[0])*editMapRenderer.getzView()*-1 / 1000.0f);
			// When two fingers
			float distanceOld = (float) FloatMath
					.sqrt((coordsXFirst[1] - coordsXFirst[0])
							* (coordsXFirst[1] - coordsXFirst[0])
							+ (coordsYFirst[1] - coordsYFirst[0])
							* (coordsYFirst[1] - coordsYFirst[0]));
			float distanceNew = (float) FloatMath
					.sqrt((coordsX[1] - coordsX[0])
							* (coordsX[1] - coordsX[0])
							+ (coordsY[1] - coordsY[0])
							* (coordsY[1] - coordsY[0]));
			float distanceMax = (float) FloatMath
					.sqrt(getWidth()
							* getWidth()
							+ getHeight()
							* getHeight());
			

			if (event.getPointerCount() == 2) {
				editMapRenderer.setZoom(offZ + (distanceNew
						- distanceOld)/(distanceMax/10));

			}
			break;
		}
		return false;
	}

	private int getHeight() {
		// TODO Auto-generated method stub
		return 0;
	}

	private int getWidth() {
		// TODO Auto-generated method stub
		return 0;
	}
}
 
Wird denn die onTouch-Methode überhaupt ausgeführt, wenn du klickst?

Von View erbende Klassen sollten eigentlich einen OnTouchEvent-Listener bekommen. Eventuell liegt hier das Problem.

Und welche Items siehst du nichts? Wo sollen denn Items erscheinen? Und was sind deine "Items" überhaupt? :)
 
in showDialog methode sind die Items. und das Dialog soll egal wo man aus den Display klickt erscheinen.
 
Zurück
Oben Unten