2011-10-28 34 views
16

Tôi đang bối rối về cách kích hoạt một sự kiện khi hoạt động được thay đổi. Một điều mà tôi biết là sử dụng phương pháp onWindowFocusChanged() nhưng tôi không biết cách sử dụng nó. Xin vui lòng giúp đỡ trong một ví dụ, tức là khi hoạt động thay đổi, nó sẽ hiển thị một bánh mì nướng cho biết "Hoạt động thay đổi".Cách sử dụng phương thức onWindowFocusChanged()?

Trả lời

24

Phương thức sau được gọi khi thay đổi tiêu điểm của cửa sổ. Ví dụ, nếu cửa sổ tăng/giảm tiêu điểm, nó sẽ được kích hoạt. Trong trường hợp, cửa sổ tăng tiêu điểm, hasFocus là đúng và sai.

public void onWindowFocusChanged(boolean hasFocus) {   
      super.onWindowFocusChanged(hasFocus); 
      if(hasFocus) 
       Toast.makeText(context, text, duration).show(); 
    } 
+0

bạn có thể cung cấp mã đầy đủ của chức năng này không? bởi vì khi tôi sử dụng mã này, vẫn còn một lỗi ở đó. – user1008497

+0

Loại lỗi nào? Đây là một cuộc gọi lại để bạn có thể thêm bất cứ điều gì bạn muốn làm ở đây. – Reno

+0

Nhiều điểm đánh dấu tại dòng này -Syntax lỗi trên mã thông báo "boolean", xóa mã thông báo này -hasFocus không thể được giải quyết -Syntax lỗi, chèn ";" để hoàn thành Tuyên bố tôi đang sử dụng IDE Eclipse – user1008497

0
public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 

    @Override 
    public void onWindowFocusChanged(boolean hasFocus) { 
     if(!hasFocus) { 
      //do anything you want here 
      Toast.makeText(MainActivity.this,"Activity changed",Toast.LENGTH_SHORT).show(); 
     } 
    } 

} 

này có thể giúp ...

0

gọi khi Window hiện tại của lợi nhuận hoạt động hoặc mất tập trung. Đây là chỉ báo tốt nhất về việc liệu hoạt động này có hiển thị với người dùng hay không. Việc triển khai mặc định sẽ xóa trạng thái theo dõi khóa, vì vậy sẽ luôn được gọi.

@Override 
public void onWindowFocusChanged(boolean hasFocas) { 
    super.onWindowFocusChanged(hasFocas); 
    //your code here 
} 

hasFocus boolean: Cửa sổ của hoạt động này có tập trung hay không.

Các vấn đề liên quan