I have a game after game over, I am save the score and name using alertdialog into database,its fine but when I click any where on game window alertdialog closed and again game is working for that I need disable game window after game is over or alertdialog never closed event I click on game window.
my code is:
mainactivity:
public class MainActivity extends Activity {
static TextView editText;
static int score=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText=(TextView) findViewById(R.id.editText1);
//editText.setText(""+score);
Button button=(Button) findViewById(R.id.button1);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
new AnimatedView(MainActivity.this).pauseClicked();
}
});
}
public static void setCount(int count) {
//new MainActivity().onCreate(null);
score=count;
editText.setText(""+score);
}
Animatedview:
public class AnimatedView extends ImageView{
String name;
static int count=0;
private Context mContext;
int x = 130;
int y = 450;
private float a,b;
private int xVelocity = 20;
private int yVelocity = 20;
private Handler h;
private final int FRAME_RATE = 25;
BitmapDrawable ball;
boolean touching;
boolean dm_touched = false;
float move=3;
int bm_x = 0, bm_y = 0, bm_offsetx, bm_offsety,bm_w,bm_h;
boolean paused;
private Paint line, ball1, background;
static int click=0;
private static final int TEXT_ID = 0;
DBCeation dbCeation;
public AnimatedView(Context context) {
super(context);
}
public AnimatedView(Context context, AttributeSet attrs) {
super(context, attrs);
mContext = context;
h = new Handler();
}
private Runnable r = new Runnable() {
@Override
public void run() {
//Log.e("game","run called");
if(touching = true)
invalidate();
}
};
@Override
protected void onDraw(Canvas c) {
BitmapDrawable ball = (BitmapDrawable) mContext.getResources().getDrawable(R.drawable.ball);
if (x<0 && y <0) {
//x = this.getWidth()/2;
y = c.getHeight()/2;
} else {
//Log.d("s",""+xVelocity);
Log.d("s",""+yVelocity);
x += xVelocity;
y += yVelocity;
if ((x > this.getWidth() - ball.getBitmap().getWidth()) || (x < 0)) {
xVelocity = xVelocity*-1;
}
if (y >( this.getHeight() - ball.getBitmap().getHeight()) ||y <0) {
yVelocity = yVelocity*-1;
}
}
c.drawBitmap(ball.getBitmap(), x, y, null);
//Log.e("sarat",""+touching);
if(click>=2){
if(bm_h+y>630){
final EditText input=new EditText(mContext);
Toast.makeText(getContext(),"game over",Toast.LENGTH_SHORT).show();
AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
builder.setTitle("Game Is Over");
builder.setMessage("Enter your Name");
// Use an EditText view to get user input.
input.setId(TEXT_ID);
builder.setView(input);
builder.setPositiveButton("save", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
name=input.getText().toString();
Log.d("name",""+name);
int score=MainActivity.score;
dbCeation=new DBCeation(mContext);
dbCeation.insertValues(name, score);
Intent intent=new Intent(mContext,Home.class);
click=0;
mContext.startActivity(intent);
}
});
builder.setIcon(R.drawable.ic_launcher);
builder.show();
x=150;
y=200;
xVelocity=0;
yVelocity=0;
}}
if(touching){
// Log.e("game","iftouch called called");
h.postDelayed(r, FRAME_RATE);
bm_w=ball.getBitmap().getWidth();
bm_h=ball.getBitmap().getHeight();
}
}
public void pauseClicked()
{
xVelocity=0;
yVelocity=0;
invalidate(xVelocity, yVelocity, 0, 0);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
// Log.d("game","ontouch called");
int touchType = event.getAction();
switch(touchType){
case MotionEvent.ACTION_MOVE:
a = event.getX();
b = event.getY();
touching = true;
/* if (dm_touched) {
x = (int) a - bm_offsetx;
y = (int) b - bm_offsety;
}*/
//invalidate();
break;
case MotionEvent.ACTION_DOWN:
//x and y give you your touch coordinates
a = event.getX();
b = event.getY();
touching = true;
if(a>x+20&&a<330&&b<=y+320&&b>y){
click++;
Log.d("click",""+click);
invalidate();
touching=true;}
/* if (touching) {
// paused = true;
h.removeCallbacks(r);
touching = false;
} else {
touching = true;
}*/
//Log.d("game","action_down called");
Log.e("s",""+ a);
Log.e("s",""+ b);
Log.e("s",""+ x);
Log.e("s",""+ y);
Log.e("s",""+ bm_w);
Log.e("s",""+ bm_h);
if ((a > x) && (a < bm_w + x) && (b > y) && (b < bm_h + y)) {
count++;
MainActivity.setCount(count);
//invalidate();
Log.i("score",""+count);
}
if (dm_touched) {
if ((a > x) && (a < bm_w + x) && (b > y) && (b < bm_h + y)) {
move+=2;
//x = (int) a - bm_offsetx;
y = (int) (yVelocity*-1);
//invalidate();
}}
// dm_touched = true;
case MotionEvent.ACTION_UP:
a = event.getX();
b = event.getY();
/* if(a>x+20&&a<330&&b<=y+320&&b>y){
click++;
Log.d("click",""+click);
invalidate();
touching=true;}*/
if ((a > x) && (a < bm_w + x) && (b > y) && (b < bm_h + y)) {
Log.e("game","clicked");
}
default:
dm_touched = true;
}
return true;
}
@Override
public void destroyDrawingCache() {
count=0;
click=0;
super.destroyDrawingCache();
}
}
AlertDialog generally consists of the main title, the message, and two buttons, technically termed as a positive button and a negative button. Both positive and negative buttons can be programmed to perform various actions. By default, the negative button lets close the AlertDialog without any additional lines of code.
By default, dialog can be closed by pressing Esc key and clicking the close icon on the right of dialog header. It can also be closed by clicking outside of the dialog using hide method. Set the CloseOnEscape property value to false to prevent closing of the dialog when pressing Esc key.
AlertDialog. A dialog that can show a title, up to three buttons, a list of selectable items, or a custom layout.
You can use its cancallable method like below,
builder.setCancelable(false);
You can use the setCanceledOnTouchOutside(false)
method of AlertDialog
if you want to prevent the AlertDialog
from closing on window click but still want to be able to close it on back button click.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With