2013年9月24日星期二

[Android] How to Andrews part of the code written their own tools category

Existing one activity class

public class MainActivity extends Activity {
/ / ... other code omitted
@ Override
public boolean onKeyDown (int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction () == KeyEvent.ACTION_DOWN) {
if ((System.currentTimeMillis () - exitTime)> 2000) / / System.currentTimeMillis () whenever called , certainly greater than 2000
{
Toast toast = Toast.makeText (getApplicationContext (), " Press again to exit ", Toast.LENGTH_SHORT);
toast.setGravity (Gravity.CENTER, 0, 0);
toast.show ();
exitTime = System.currentTimeMillis ();
} else {
finish ();
System.exit (0);
}
return true;
}

return super.onKeyDown (keyCode, event);
}

}
want to write the above code inside onKeyDown own tools category, others are easy to handle, which is the last one super.onKeyDown (keyCode, event) I do not know how to write , I implore heroes help solve ? Thank you


public class MyTool {

Context context;
Long exitTime;


public MyTool (Context context) {

this.context = context

}


public boolean exit (int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction () == KeyEvent.ACTION_DOWN) {
if ((System.currentTimeMillis () - exitTime)> 2000)
{
Toast toast = Toast.makeText (context.getApplicationContext (), " Press again to exit ", Toast.LENGTH_SHORT);
toast.setGravity (Gravity.CENTER, 0, 0);
toast.show ();
exitTime = System.currentTimeMillis ();
} else {
context.finish ();
System.exit (0);
}
return true;
}

return super.onKeyDown (keyCode, event) ;/ / here I do not know how to write
}

}
------ Solution ----------------------------------- ---------
super is an object , the Senate changed :
	public boolean exit(Activity superActivity, int keyCode, KeyEvent event) {	
// ...
return superActivity.onKeyDown(keyCode, event);
}

------ eference ------------------------------------- -
positive solution, thank you
------ eference ------------------------------ ---------
just found a problem, how to superActivity instantiated :
MyTool tool = new MyTool (this);
Activity superActivity;
public boolean onKeyDown (int keyCode, KeyEvent event) {
tool.exit (superActivity, keyCode, event)
}




------ eference ------------------------------------ ---
change in thinking , and see what I wrote :
	private int pressed = 0;
@Override
public void onBackPressed() {
if (pressed ++ == 0) {
KDialogHelper.showToast(this, "再按一次退出系统");
new Timer().schedule(new TimerTask() {
@Override
public void run() {
pressed = 0;
}
}, 3000);
}
if (pressed > 1) {
finish();
}
}

没有评论:

发表评论