簡體   English   中英

按下“后退”按鈕時,將正確的信息傳遞給上一個活動

[英]Passing The Proper Information To Previous Activity When Back Button Pressed

我正在使用以下代碼在工具欄中實現后退按鈕:

super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_series);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar( toolbar );
        Objects.requireNonNull(getSupportActionBar()).setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setDisplayShowHomeEnabled(true);

        toolbar.setNavigationOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(SeriesActivity.this, BowlerActivity.class));
                finish();
            }
        });

我的問題是當.setNavigationOnClickListener注冊點擊時,它會回到上一個活動減去正確的Bowlers的點擊。 當我進入“系列活動”時,我要向其傳遞LeagueId和BowlerId。 當我回到BowlerActivity時,我沒有傳遞任何東西,因此得到以下信息:

在此處輸入圖片說明 在此處輸入圖片說明 在此處輸入圖片說明

圓頂硬禮帽B1和B2屬於另一個聯賽。

我經歷了這樣的幾個不同的線程如何覆蓋android中的操作欄后退按鈕? 我嘗試了其中的幾種不同建議。 他們都沒有為我工作。

我如何將LeagueId和BowlerId傳遞回BowlerActivity,以便啟動時我從數據庫中過濾適當的Bowler,以顯示在列表視圖中。

我什至需要傳回這些值嗎? 任何援助將不勝感激。

在您的SeriesActivity中,使用startActivityForResult()方法調用BowlerActivity

例如:

Intent i = new Intent(SeriesActivity.this, BowlerActivity.class);
startActivityForResult(i, 1);

在BowlerActivity中,設置要返回到SeriesActivity的數據。 如果您不想返回,請不要進行任何設置。

For example: In BowlerActivity if you want to send back data:

Intent returnIntent = new Intent();
returnIntent.putExtra("result",result);
setResult(Activity.RESULT_OK,returnIntent);
finish();

If you don't want to return data:

Intent returnIntent = new Intent();
setResult(Activity.RESULT_CANCELED, returnIntent);
finish();

現在,在SeriesActivity類中,為onActivityResult()方法編寫以下代碼。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    if (requestCode == 1) {
        if(resultCode == Activity.RESULT_OK){
            String result=data.getStringExtra("result");
        }
        if (resultCode == Activity.RESULT_CANCELED) {
            //Write your code if there's no result
        }
    }
}

來源=> https://stackoverflow.com/a/10407371/9956766

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM