簡體   English   中英

動作欄上的“返回”按鈕-Android。 如何“回頭”?

[英]“Back” button on Action bar - Android . How to go “back”?

在此處輸入圖片說明

動作欄

我說的是(圖片中的數字1),帶有小箭頭和應用程序圖標的按鈕,以及屏幕的左上方。 當我們選擇“黑色活動”模板時,它會自動定義。

我的應用程序有一個非常龐大的層次結構圖,現在大約有25個活動。 我基本上只是顯示一些教程,並且可以根據類別瀏覽至該教程。

現在,操作欄上的“返回”(?)按鈕已經在我擁有的每個屏幕上,並且我確實希望保留它。 該代碼未顯示任何錯誤,但是當我實際按下該按鈕時,該應用程序停止工作。 我想要的是僅使用圖像中顯示的那個(數字1)按鈕復制實際的后退按鈕功能。 當我按它時,最上面的屏幕應該關閉,最后一個屏幕應該打開。 只需關閉屏幕即可。

我試過了

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case android.R.id.home:

            NavUtils.navigateUpFromSameTask(this);
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

這是使越野車按鈕以及操作欄膨脹的功能。 我試圖替換整個代碼,並調用“完成”功能,但是失敗了。 我找不到最左上角按鈕專用的功能...

我希望在觸摸此按鈕時關閉堆棧中最上面的屏幕(前景中的一個)。 這該怎么做 ?

我認為最簡單的出路如下:

我假設從活動A開始活動B 現在,您想從活動B返回到活動A ,方法是按操作欄上的左上角后退按鈕。 只需從此處調用this.finish()ActivityName.this.finish()

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

這應該完成您當前的活動。 但是,如果您有很多活動,那么您可能必須在所有活動中都這樣做。 為了節省您的時間,您可以創建一個類,命名為AbstractActivity 擴展了Activity 然后,您可以擴展所有其他活動類以擴展該類( AbstractActivity )。 AbstractActivity內部,您可以放置​​上面的代碼。 因此,現在這段代碼將對您的所有活動均有效,並且對該功能也將對其全部實施。 基本上,當某些通用功能適用於您的許多類時,可以隨時使用這種東西( 繼承 )。

如果收到任何錯誤,請在需要進一步幫助的情況下發布LogCat 希望這對您有所幫助。

只是給出@shobhit puri給出的基本代碼...

用於調用操作欄的后退按鈕。在onCreate()方法中將以下代碼與onOptionsItemSelected一起添加。

protected void onCreate(Bundle savedInstanceState) 
{
    ActionBar actionBar = getActionBar(); 
    actionBar.setDisplayHomeAsUpEnabled(true);
    super.onCreate(savedInstanceState);     
    setContentView(R.layout.activity_information);
}

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

暫無
暫無

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

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