我很想得到答案,谢谢!
嗯,我想做的很简单。
我有一个活动,在屏幕上显示一个团队的一些项目,这个活动在回收者视图中填充项目,它必须得到像“idTeam”这样的变量(因为我只显示属于一个项目的项目)指定的团队)。让我们通过HomeTeamActivity调用此活动。
在这个活动中,我还有一个带菜单的工具栏,在这个菜单中我有一个选项让用户离开另一个活动。让我们通过SecondActivity调用此活动。
好的,我在这个SecondActivity中实现了一个向上按钮,让用户离开HomeTeamActivity,这很好,但是,HomeTeamActivity正常工作,它必须得到“idTeam”。我的问题在这里,我正在尝试将此变量从SecondActivity传递给HomeTeamAcitivity,但我无法处理此Up按钮。
我在Stackoverflow中已经阅读了很多关于它的问题,但没有人可以帮助我。 我试图覆盖方法“onOptionsItemSelected”,如下面的代码,但是当我点击向上按钮时,没有任何反应。我试图在这个方法的“switch case”语句中插入一个断点,调试器没有进入。
我的清单文件是可以的,因为如果我删除方法“onOptionsItemSelected”,则向上按钮会将用户留给HomeTeamActivity,但不传递我需要的变量。
SecondActivity的代码如下:
public class AddMembroEquipeActivity extends AppCompatActivity {
private String idEquipe;
private String nomeEquipe;
private String descEquipe;
private DatabaseReference mRefUsuario;
private FirebaseAuth mAuth;
private EditText mTextoPesquisa;
private Button mPesquisar;
//Texto que o usuário digitou no campo
private String stringPesquisa;
//Infos do usuário que está logado
String emailUsuarioLogado;
String idUsuarioLogado;
//Lista que guarda os usuários recebidos da pesquisa
private List<Usuario> usuarios = new ArrayList<Usuario>();
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case R.id.home:
Log.d("backbutton", "cheguei");
Intent intent = new Intent(AddMembroEquipeActivity.this, ProjetosEquipeActivity.class);
intent.putExtra("idEquipe", idEquipe);
startActivity(intent);
break;
}
return true;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_membro_equipe);
android.support.v7.widget.Toolbar tbAddMembrosEquipe = (android.support.v7.widget.Toolbar) findViewById(R.id.tb_addMembrosEquipe);
Bundle bundle = getIntent().getExtras();
if(bundle !=null) {
idEquipe = bundle.getString("idEquipe");
nomeEquipe = bundle.getString("nomeEquipe");
descEquipe = bundle.getString("desEquipe");
}
tbAddMembrosEquipe.setTitle("Adicionar Membros - " + nomeEquipe );
mRefUsuario = FirebaseDatabase.getInstance().getReference().child("usuarios");
mTextoPesquisa = (EditText) findViewById(R.id.et_pesquisa);
mPesquisar = (Button) findViewById(R.id.bt_pesquisar);
setSupportActionBar(tbAddMembrosEquipe);
if(getSupportActionBar() != null){
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
}
}
我希望问题清楚明白,我的英语可以被理解。谢谢!
答案 0 :(得分:2)
将R.id.home
替换为android.R.id.home
这样的事情:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
// Respond to the action bar's Up/Home button
case android.R.id.home:
....
....
return true;
}
return super.onOptionsItemSelected(item);
}