我写了一段代码,如果他们想要退出,会给用户提示他们再次按下.我目前我的代码工作到一定程度,但我知道它写得很差,我认为有更好的方法来做到这一点.任何的意见都将会有帮助!
码:
public void onBackPressed(){
backpress = (backpress + 1);
Toast.makeText(getApplicationContext(), " Press Back again to Exit ", Toast.LENGTH_SHORT).show();
if (backpress>1) {
this.finish();
}
}
Run Code Online (Sandbox Code Playgroud) Android开发人员指南中是否有一些内容阻止开发人员提供从应用程序本身 "退出"(停止运行)应用程序的选项?
我喜欢多任务处理但除此之外我不清楚为什么:
这两件事都导致内存使用不断增加,并且您的设备一直在运行时遇到这种性能负担,尽管您可能只希望某些应用程序在某些时间运行.
我错过了什么吗?
我是Android开发的新手,我想要它,所以当用户按下主活动上的后退按钮时,会出现一个Toast消息,其中"再次按下后退按钮确认退出"消息.我该怎么做?这是我到目前为止:
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
super.onBackPressed();
Toast s = Toast.makeText(getBaseContext(), "Press back again to exit", Toast.LENGTH_LONG);
s.show();
wait();
public boolean onBackPressed() {
finish();
}
}
Run Code Online (Sandbox Code Playgroud) 我一直在尝试构建一个可以检测双击和三击的敲击检测器.在我的努力失败之后,我在网上搜索了很长时间以找到可以使用的东西,但没有运气!奇怪的是,像这样的东西的图书馆是如此稀缺.任何帮助?
活动A有一个按钮,在onclick它启动新活动B时,新活动只有最小的onCreate功能.
在活动AI中按下一个使用的按钮
startActivity(new Intent(A.this, B.class))
Run Code Online (Sandbox Code Playgroud)
开始活动B.当我运行程序时,按下活动A中的按钮,活动B开始,但我必须使用两次后退按钮退出并返回第一个活动.
当单击A中的按钮时,我检查了logcat,同时生成了两个相同的实例.此外,我尝试在Activity B中使用Toastin onCreate进行调试,这表明当我使用后退按钮时,它会调用onCreate另一个双B活动.我发现这篇文章点击两次后退按钮退出一个不回答问题的活动.
我可以阻止它制作双实例的唯一方法是使用tag:launchMode= "singleInstance"清单中的活动明确限制它.
问题仍然存在:
更多解释:代码:Activity A有一个buttOnClick()函数,其中有一个开关(view.getId()),用于检查单击了哪个按钮.每种情况都使用特定的整数参数(按钮ID)调用函数动画.在此函数中,再次切换检查id并使用setAnimationListener运行与按钮对应的动画.在动画结束时,它要求启动新活动.这是它的样子:
public void myButtonOnClick(View view)
{
switch (view.getId()) {
case R.id.button1:
animation(1);
break;
//....more lines..... }}
public void animation(int a){
//...code...
switch(a){
case 1:
anim.setAnimationListener(new AnimationListener() {
public void onAnimationStart(Animation arg0) {
// TODO Auto-generated method stub
}
public void onAnimationRepeat(Animation arg0) {
// TODO Auto-generated method stub
}
public void onAnimationEnd(Animation arg0) { …Run Code Online (Sandbox Code Playgroud) 我以前曾问过这个问题但不幸的是我无法找到关于这个问题的更好的解决方案.现在我的应用程序包含第一个屏幕作为启动画面然后接下来是列表视图(主要活动)然后单击列表视图的每一行打开每个活动和我的要求如果我们按下任何内部活动的后退按钮(当我们点击列表视图行时开放的活动),它必须导航到我的主列表视图,然后如果我们再次从列表视图中按下该应用程序必须关闭.因此,如果我按下我的列表视图中的后退按钮两次它将正确退出应用程序.但我的主要问题是,如果我从我的任何内部活动按两次后退按钮我的应用程序没有关闭我需要按三次而不是从我的任何内部活动关闭应用程序.任何人都可以帮助我吗?
退出应用程序的代码是我在主listview类中添加了这段代码.
private static final int TIME_INTERVAL = 3000; // # milliseconds, desired time passed between two back presses.
private long mBackPressed;
@Override
public void onBackPressed()
{
if (mBackPressed + TIME_INTERVAL > System.currentTimeMillis())
{
super.onBackPressed();
return;
}
else { Toast.makeText(getBaseContext(), "Tap back button in order to exit", Toast.LENGTH_SHORT).show(); }
mBackPressed = System.currentTimeMillis();
}
}
Run Code Online (Sandbox Code Playgroud)
我的manifest.xml
<application
android:allowBackup="true"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version"/>
<activity
android:name="learnersseries.mathematics.complexnumbers.Firstintro"
android:screenOrientation="portrait"
android:launchMode="singleTop"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="Myintegralpage"
android:screenOrientation="portrait" …Run Code Online (Sandbox Code Playgroud) 我有一个需要像iOS中的文本字段一样运行的edittext.当我点击它时,应该可以编辑,否则它应该被禁用.假设用户想要编辑某个值,当他按下后退按钮时,随着键盘关闭,我希望编辑文本被禁用以进行编辑.
我正在使用的是setCursorVisible(true)和setCursorVisible(false)方法.我确实尝试过使用keyCode事件,但他们没有帮助.这是我到目前为止尝试过的:
@Override
public void onBackPressed() {
// Had the InputMethodManager service here..
if(imm.isAcceptingText())
{
Toast.makeText(ProfileActivity.this,"working",Toast.LENGTH_SHORT).show();
}
else {
super.onBackPressed();
Toast.makeText(ProfileActivity.this,"back pressed called",Toast.LENGTH_SHORT).show();
}
}
Run Code Online (Sandbox Code Playgroud)
还尝试重写keyDown事件.
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
//replaces the default 'Back' button action
if(keyCode==KeyEvent.KEYCODE_BACK)
{
Log.d("123","called,called");
return true;
}
return super.onKeyDown(keyCode, event);
}
Run Code Online (Sandbox Code Playgroud) android android-softkeyboard android-input-method android-edittext
在我的 MainActivity 中,我像这样覆盖了 OnBackPressed() 方法
public override void OnBackPressed()
{
Toast toast = Toast.MakeText(this, "Press again to exit", ToastLength.Short);
toast.SetMargin(0,0.20f);
toast.Show();
}
Run Code Online (Sandbox Code Playgroud)
当用户在 MainActivity 中并单击一次后退按钮时,屏幕上会出现消息“再次按下退出”,该消息在几秒钟后消失。如果用户在屏幕上显示此消息时再次单击后退按钮,我希望应用程序退出,但是当消息消失并且用户单击后退按钮时,我希望该消息再次出现。我已经看到一些在 Java 中这样做的示例,但我发现很难调整这些示例以在 Xamarin.Android 上工作。