-1

我一直在编写一些代码,试图将两个链接起来activties,我快到了,但我遇到了一个问题。

我的一行代码无法访问。谁能解释为什么?

package com.example.twolink

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    getActionBar().setDisplayHomeAsUpEnabled(true);
}

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

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            NavUtils.navigateUpFromSameTask(this);
            return true;
    }
    return super.onOptionsItemSelected(item);

    Button button2 = (Button) findViewById(R.id.button2);
    button2.setOnClickListener(new OnClickListener() {          
        public void onClick(View v) {
            startActivity(new Intent(getApplicationContext(), MainActivity2.class));
            finish();
        }   
    });
} 
4

2 回答 2

2

onOptionsItemSelected(...),你return super.onOptionsItemSelected(item);就在switch块之后。此时您的方法退出。之后的一切都是无法访问的代码。

于 2013-01-12T03:25:34.150 回答
0

在 onCreate 方法上初始化您的 Button,如下所示:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Button button2 = (Button) findViewById(R.id.button2);
    button2.setOnClickListener(new OnClickListener() {          

    public void onClick(View v) {
        startActivity(new Intent(getApplicationContext(), MainActivity2.class));
        finish();
    }  
    getActionBar().setDisplayHomeAsUpEnabled(true);
}

如果您想最初隐藏按钮,请使用setVisibility(View.GONE)切换按钮的可见性。然后,如果您想稍后显示它,您可以setVisibility(View.VISIBLE)在其他地方显示。

于 2013-01-12T03:33:27.327 回答