Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 后退按钮无意中退出应用程序_Java_Android_Eclipse_User Interface_Android Activity - Fatal编程技术网

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;
            }

我相信这会起作用,但是我已经找到了问题的根源并解决了它。这是一个简单的问题,之前结束了一项本不该结束的活动。谢谢