2012-07-13 28 views
6

thể trùng lặp:
How do I make a toast from a non activity class?Làm thế nào để hiển thị một thông Toast từ một lớp học mà không mở rộng Hoạt động

Làm thế nào tôi có thể tạo ra và hiển thị một thông Toast từ một lớp mà không mở rộng lớp Activity? Tôi đang sử dụng lớp này trong một lớp khác được mở rộng bởi Activity.

+0

u có nghĩa liek này Toast.makeText (getApplicationContext(), "máy chủ lỗi not responding" + e.getMessage(), Toast.LENGTH_SHORT) .chỉ(); – user1513889

+1

xin vui lòng gửi mã để biết một cách dễ dàng. – AkashG

+0

Hiển thị Bánh mì nướng yêu cầu tham chiếu đến đối tượng Ngữ cảnh. Bạn có thể chuyển ngữ cảnh hoặc đối tượng hoạt động cho lớp mà bạn muốn tạo một Bánh mì nướng. – param

Trả lời

12

Bạn cần tham chiếu ngữ cảnh. bạn có thể vượt qua rõ ràng là tham số khi bạn tạo lớp học của bạn

public class MyClass { 

    private static Context context; 
    public MyClass(Context c) { 
    context = c; 
    } 

    public static void showToastMethod() { 
     Toast.makeText(context, "mymessage ", Toast.LENGTH_SHORT).show(); 
    } 

} 
+0

phương pháp của tôi sử dụng để hiển thị bánh mì nướng trong cố gắng bắt khối là tĩnh – user1513889

+0

xem chỉnh sửa ... – Blackbelt

+1

Điều này có vẻ như một cách tuyệt vời để rò rỉ một ngữ cảnh. Thay vào đó, hãy chuyển ngữ cảnh này thành một đối số cho 'showToastMethod()' và sử dụng nó từ đó. Giữ một tham chiếu vĩnh viễn với nó có thể là xấu nếu một thể hiện của lớp của bạn sống lâu hơn hoạt động/dịch vụ/.. mà bối cảnh thuộc về. Làm cho tham chiếu tĩnh đó không làm cho nó tốt hơn, thay vì tệ hơn. –

4

Bạn có thể vượt qua bối cảnh đó hoạt động để lớp học của bạn bằng cách truyền giá trị cho lớp nonActivity

dụ:

new NonActivityClass(Activityclass.this) ; 

và như trong phía trên trả lời

new MyClass(ActivityClass.this); 

In NonActivityClass

public class NonActivityClass { 

    public NonActivityClass (Context context) { 

     Toast.makeText(context, "mymessage ", Toast.LENGTH_SHORT).show(); 
    } 

} 

Hope làm việc này cho bạn ...

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