返回按钮 - 无法访问

时间:2013-04-07 11:59:45

标签: android button android-activity

我想创建一个关闭当前活动的按钮。就像一个“返回”按钮。 这是我试过的代码片段:

这是完整的.java:

public class OtherApps extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.other_apps);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.otherappsmenu, menu);
        return true; 
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch(item.getItemId()) {  
        case R.id.previous:
            finish();
            break;
        case R.id.home:
            Context context = getApplicationContext();
            CharSequence text = "Activitys are not closed!";
            int duration = Toast.LENGTH_LONG;
            Toast toast = Toast.makeText(context, text, duration);
            toast.show();
            Intent intent = new Intent(this, MainActivity.class);
            this.startActivity(intent);
            break;
        case R.id.exit:
            finish();
            System.exit(0);
        case R.id.help:
            String url = "http://www.google.de/";
            Intent i = new Intent(Intent.ACTION_VIEW);
            i.setData(Uri.parse(url));
            startActivity(i);
            return true;
        default:
            return super.onOptionsItemSelected(item);
        }
        return true;

        final Button OtherApps = (Button)findViewById(R.id.previousbutton);
        OtherApps.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                finish();
            }
        });
        return true;
    }
}

但Eclipse说“第一行无法到达”。 有谁知道错误是什么?

感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

如果你的“第一行”无法访问,那么知道这两个版本之前的代码是什么更为重要。可能是,您在那里有return语句或者条件总是false

在这种情况下,永远不会达到附加点击监听器的代码。

<强> P.S。

您从方法返回时有两行,这意味着永远不会执行以下代码:

switch(item.getItemId()) {  
   ...
   default: // here, return if none of the values above matched
     return super.onOptionsItemSelected(item); 
}
return true; // here, return always

// conclusion: this gets never executed: Eclipse says "line not reachable"
final Button OtherApps = (Button ...

答案 1 :(得分:1)

此代码应该有效(第一个示例应该是首选)。

在获得粘贴代码之前,您获得的错误听起来好像在该方法内的任何位置都有return - 语句。搜索它,它应该修复错误。

编辑:

public class OtherApps extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.other_apps);

        final Button OtherApps = (Button) findViewById(R.id.previousbutton);
        OtherApps.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            finish();
            }
        });
}