好的,这是我的问题。我正在研究一个Android应用程序并同时学习android,所以大多数时候我都会遇到错误。 Normaly我可以在研究了一下后修复它们,但是我在这一点上陷入困境。
我正在尝试为我的应用中的每个Activity创建一个后退按钮,所以我想要创建一个“BackButton”类,所以我可以每次都想实现它。这是我的BackButton代码:
import android.content.Intent;
import android.view.View;
import android.widget.Button;
import android.app.Activity;
public class BackButton extends Activity implements View.OnClickListener{
public static Button BackButton;
// Defining the button
public BackButton() {
BackButton = (Button) findViewById(R.id.bBack);
BackButton.setOnClickListener(this);
}
//To get the Button
public static Button getBackButton() {
return BackButton;
}
// OnClickListener
public void onClick(View v) {
try {
Class MainActivityClass = Class.forName("eu.lafarga.treballderecerca.MainActivity");
Intent MainActivityIntent = new Intent(BackButton.this, MainActivityClass);
startActivity(MainActivityIntent);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}finally {
// Save the things we've done.
}
}
}
那么,我应该如何在任何活动中实现这一点?我做错了什么? (当然,我很好)
答案 0 :(得分:4)
有一种更简单的方法来收听backButton。
// Called when the activity has detected the user's press of the back key.
onBackPressed()
当你不调用超级方法时,不应该有任何进一步的步骤。 但这不是“禁用”后退按钮的好方法。
http://developer.android.com/reference/android/app/Activity.html
答案 1 :(得分:2)
就个人而言,我建议不要这样做。我认为覆盖每个Activity
中的后退按钮会更安全,更灵活,同样容易,如果不容易的话。很可能,随着您的应用程序的增长,您并不总是希望返回MainActivity
,因为当用户点击后退按钮时,这可能不是用户的预期操作。覆盖需要它的Activities
中的后退按钮并运行代码
@Overrride
public void onBackPressed(View v) {
// save data first
Intent MainActivityIntent = new Intent(CurrentActivityName.this, MainActivityClass);
startActivity(MainActivityIntent);
super.onBackPressed();
}
如果您想通过调用{{FLAG_ACTIVITY_CLEAR_TOP
删除目前Activities
之间的所有Activity
,请使用MainActivity
之类的标记setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
1}}
答案 2 :(得分:1)