2015-09-11 25 views
11
  • Tôi mới vào Android và học tập để tạo ra các mảnh vỡ trong Android bằng cách làm theo
    ví dụ này:Không thể giải quyết phương pháp getActivity()

  • Mã giữa Duyệt giữa Menu ItemsThêm Navigation Tiêu đề bao gồm một phương thức getActivity().

  • Như tác giả đã không được đề cập nơi để dán mã này, tôi dán vào tập tin MainActivity.java tôi

  • là mã giữa Duyệt giữa Menu ItemsThêm Navigation Tiêu đề dán ở đúng vị trí của tôi ?

  • Trong phương thức selectDrawerItem(MenuItem menuItem) có một nhận xét // Create a new fragment and specify the planet to show based on position
    Tác giả dự kiến ​​tôi sẽ thêm gì đó ở đây.

  • Các tập tin dự án bố trí được tạo ra bởi tôi trên AndroidStudio là như sau: AndroidStudio Snapshot
+0

getActivity() thường được gọi từ trong một đoạn. –

Trả lời

20

Tích Cực không có phương pháp getActivity().
Các mảnh vỡ có.

getActivity() nói: "trả lại Hoạt động chứa tôi".

Và mặc dù các khung hình có trong Hoạt động, bản thân các hoạt động thì không.

+0

Có, tôi phân tích nó và sau đó thực hiện các thay đổi đối với mã của tôi và bây giờ nhận được lỗi NullPointerException. Tôi đang làm những điều đúng cách. Tôi mới sử dụng Android và ví dụ đầu tiên của tôi là thử dùng Android. – Akki

+0

Bạn có thể đăng một số mã có liên quan, thay vì mô tả nó không? tức là: phương thức onCreate() hoạt động chính? –

+0

@Override void được bảo vệ onCreate (Bundle savedInstanceState) { super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); // Đặt Thanh công cụ để thay thế Thanh tác vụ. thanh công cụ = (Thanh công cụ) findViewById (R.id.toolbar); setSupportActionBar (thanh công cụ); NavigationView nvDrawer = (NavigationView) findViewById (R.id.nvView); // Chế độ xem ngăn thiết lập setupDrawerContent (nvDrawer); // Tìm giao diện ngăn kéo của chúng tôi – Akki

31

Bạn có thể sử dụng:

this 

Thay vì:

getActivity() 

:))

0

Trong Fragment cách tốt nhất là sử dụng phương pháp onAttach() để có được sự thể hiện của một Hoạt động đính kèm với nó.

@Override 
    public void onAttach(Activity activity) { 
     super.onAttach(activity); 
    } 
Các vấn đề liên quan