如何处理传递变量

时间:2017-11-06 07:34:13

标签: android android-activity

我很想得到答案,谢谢!

嗯,我想做的很简单。

我有一个活动,在屏幕上显示一个团队的一些项目,这个活动在回收者视图中填充项目,它必须得到像“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);
        }
}

我希望问题清楚明白,我的英语可以被理解。谢谢!

1 个答案:

答案 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);
}