Java 后退按钮无意中退出应用程序
希望这没有被问到 在构建应用程序并成功从主活动打开新活动时,当按下后退按钮时,应用程序退出,而不是返回主活动 下面是从主活动调用的活动的代码Java 后退按钮无意中退出应用程序,java,android,eclipse,user-interface,android-activity,Java,Android,Eclipse,User Interface,Android Activity,希望这没有被问到 在构建应用程序并成功从主活动打开新活动时,当按下后退按钮时,应用程序退出,而不是返回主活动 下面是从主活动调用的活动的代码 package com.austinrhodes.simplesounds; import android.app.Activity; import android.os.Bundle; import android.support.v4.app.NavUtils; import android.view.KeyEvent; import android
package com.austinrhodes.simplesounds;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.NavUtils;
import android.view.KeyEvent;
import android.view.MenuItem;
public class About extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_about);
}
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if ((keyCode == KeyEvent.KEYCODE_BACK))
NavUtils.navigateUpFromSameTask(this);
finish();
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
}
这里是主要活动
package com.austinrhodes.simplesounds;
import android.os.Bundle;
import android.app.Activity;
import android.app.DialogFragment;
import android.content.Intent;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.LinearLayout;
import android.widget.TextView;
public class Launch extends Activity {
int size = 3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//inflate view from XML
setContentView(R.layout.activity_launch);
createTvArray();
}
private void createTvArray() {
//create array of text views to be added to main view
TextView[] tv = new TextView[size];
//create a temporary text view
TextView temp;
for (int i = 0; i < size; i++)
{
//make a new text view object for each of the alarms
temp = new TextView(this);
temp.setText("Alarm: " + i); //arbitrary task
//get instance of Linear Layout
LinearLayout myLinearLayout = (LinearLayout) findViewById(R.id.linearAlarm);
// add the textview to the linearlayout
myLinearLayout.addView(temp);
tv[i] = temp;
}
}
private void openSettings(){
Intent intent = new Intent(this, Settings.class);
startActivity(intent);
finish();
}
private void openAbout(){
Intent intent = new Intent(this, About.class);
startActivity(intent);
finish();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_launch, menu);
return true;
}
public boolean onCreateOptionsMenu1(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.activity_launch, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.settings:
openSettings();
return true;
case R.id.new_alarm:
DialogFragment newFragment = new AddAlarm();
newFragment.show(getFragmentManager(), "add_alarm");
return true;
case R.id.about:
openAbout();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}
package com.austinrhodes.simplesounds;
导入android.os.Bundle;
导入android.app.Activity;
导入android.app.DialogFragment;
导入android.content.Intent;
导入android.view.Menu;
导入android.view.MenuInflater;
导入android.view.MenuItem;
导入android.widget.LinearLayout;
导入android.widget.TextView;
公开课的推出扩大了活动的范围{
int size=3;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//从XML膨胀视图
setContentView(R.layout.activity_launch);
createTvArray();
}
私有void createTvArray(){
//创建要添加到主视图的文本视图数组
TextView[]电视=新的TextView[大小];
//创建临时文本视图
文本视图温度;
对于(int i=0;i
相关方的xml代码片段
<activity android:name="com.austinrhodes.simplesounds.About" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.austinrhodes.simplesounds.Launch" />
</activity>
试试这个
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
CurrentClass.this.finish();
Intent i = new Intent(CurrentClass.this, MainActivity.class);
startActivity(i);
return true;
default:
return false;
}
我相信这会起作用,但是我已经找到了问题的根源并解决了它。这是一个简单的问题,之前结束了一项本不该结束的活动。谢谢