2012-02-11 30 views
5

Tôi có đoạn code sau đây mà tôi đang sử dụng bối cảnh ứng dụng để lấy thông tin cần thiết:Làm cách nào để chuyển ngữ cảnh ứng dụng (Android) sang một lớp Java?

public class Data{ 
    private boolean VarA; 

    public void setVarA(boolean B,Context ctx) 
    { 
     SharedPreferences CoreDataStorage = ctx.getSharedPreferences(PREFS_NAME, 0); 
    SharedPreferences.Editor editor = CoreDataStorage.edit(); 
     editor.putBoolean("PrefVarA", VarA); 
     edit.commit(); 
    } 

} 

Bây giờ tôi gọi phương thức nào setVarA() từ lớp dưới

public class MyActivity extends Activity{ 

    Data cd = new Data(); 

    @Override 
     public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.registration); 
     cd.setVarA(true,this); 
    } 
} 

Trong hoạt động trên nó cho tôi thấy lỗi biên dịch mà nó không thể truyền từ MyActivity sang Context. Vui lòng đề xuất bất kỳ giải pháp nào. Mã trên không phải là cách thích hợp để vượt qua ngữ cảnh?

Trả lời

9

Bạn cần ứng dụng Bối cảnh để truy cập các tùy chọn được chia sẻ. Nó phải là:

cd.setVarA(true,this.getApplicationContext()); 

trong số onCreate của MyActivity.

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