2015-06-06 16 views
5

Tôi muốn tránh hoạt động của phụ huynh bị hủy bất cứ khi nào tôi nhấp vào nút < trong thanh tác vụ.Nút ghi đè lên trong thanh tác vụ

phương thức nào đang được gọi từ AppCompatActivity khi chúng tôi nhấn nút đó?

có cách nào để tôi ghi đè không? và có cách nào để ghi đè mọi hoạt động không?

Trả lời

11

Tôi muốn tránh hoạt động của phụ huynh bị hủy bất cứ khi nào tôi nhấp vào nút < trong thanh tác vụ.

Hoạt động gốc của bạn sẽ bị tạm dừng khi bạn nhấn nút đó, thay vì bị hủy.

có cách nào để tôi ghi đè không? và có cách nào để ghi đè mọi hoạt động không?

Chỉ cần gọi:

getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
    getSupportActionBar().setHomeButtonEnabled(true); 

Bạn cần phải gọi nó để hoạt động mà bạn muốn ghi đè lên các nút. Không có lựa chọn nào khác để gọi nó 'một lần cho tất cả'.

phương thức nào đang được gọi từ AppCompatActivity khi chúng tôi nhấn nút đó?

Theo mặc định, không có phương pháp nào trong đó. Nếu bạn sử dụng Toolbar, hãy gọi setNavigationOnClickListener() để làm điều gì đó khi nhấn nút đó.

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 
    toolbar.setNavigationOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      // do something here, such as start an Intent to the parent activity. 
     } 
    }); 

Nếu bạn sử dụng ActionBar, nút đó sẽ có mặt trên Menu:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    return super.onCreateOptionsMenu(menu); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    if (item.getItemId() == android.R.id.home) { 
     // do something here, such as start an Intent to the parent activity. 
    } 
    return super.onOptionsItemSelected(item); 
} 
+0

Nếu bạn đặt trình nghe nhấp chuột trên thanh công cụ, nó sẽ không còn quay lại phụ huynh trừ khi bạn gọi điều gì đó tương đương đã đồng ý với 'NavUtils.navigateUpFromSameTask' trong trình nghe. –

1

Đối với những người đang tìm kiếm để ghi đè lên nút cho là tương tự như nút quay lại và di chuyển từ hoạt động để một cách khác chính xác, chỉ cần ghi đè

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    int id = item.getItemId(); 
    if (id == android.R.id.home){ 
     onBackPressed(); 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 
Các vấn đề liên quan