Я получаю сообщение об ошибке:нестатический метод getIntent() не может ссылаться из статического контекста
Error:(109, 18) error: non-static method getIntent() cannot be referenced from a static context
на линии:
init(getIntent().getSerializableExtra(Const.EXTRA_DATA));
Вот мой код:
public static class Upper_fragment extends Fragment {
private static final String TAG = "PlayActivity";
private Video vid;
int mSavedVideoPosition;
protected VideoPlayerInterface vidp;
private LocalSingleHttpServer mServer;
// to be implemented in concrete activities
public Cipher getCipher() throws GeneralSecurityException {
final Cipher c = Cipher.getInstance("AES"); // NoSuchAlgorithmException, NoSuchPaddingException
c.init(Cipher.DECRYPT_MODE, new SecretKeySpec("abcdef1234567890".getBytes(), "AES")); // InvalidKeyException
return c;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View upperView = inflater.inflate(R.layout.upper_fragment, container, false);
vidp = (VideoPlayerInterface) upperView.findViewById(R.id.vid);
getRTSPUrl();
init(getIntent().getSerializableExtra(Const.EXTRA_DATA));
return upperView;
}
}
В чем проблема? Как это исправить?
Следующая ошибка в следующем коде Ошибка: (120, 21) error: нестатический метод runOnUiThread (Runnable) не может ссылаться на статический контекст. как это исправить. пожалуйста, помогите
public static class Upper_fragment extends Fragment {
private static final String TAG = "PlayActivity";
private Video vid;
int mSavedVideoPosition;
protected VideoPlayerInterface vidp;
private LocalSingleHttpServer mServer;
// to be implemented in concrete activities
public Cipher getCipher() throws GeneralSecurityException {
final Cipher c = Cipher.getInstance("AES"); // NoSuchAlgorithmException, NoSuchPaddingException
c.init(Cipher.DECRYPT_MODE, new SecretKeySpec("abcdef1234567890".getBytes(), "AES")); // InvalidKeyException
return c;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View upperView = inflater.inflate(R.layout.upper_fragment, container, false);
vidp = (VideoPlayerInterface) upperView.findViewById(R.id.vid);
getRTSPUrl();
init(getActivity().getIntent().getSerializableExtra(Const.EXTRA_DATA));
return upperView;
}
public void getRTSPUrl() {
final ProgressDialog dia = ProgressDialog
.show(getActivity(), null, "Loading...");
new Thread(new Runnable() {
public void run() {
runOnUiThread(new Runnable() {
public void run() {
dia.dismiss();
try {
mServer = new LocalSingleHttpServer();
final Cipher c = getCipher();
if (c != null) {// null means a clear video ; no need to set a decryption processing
mServer.setCipher(c);
}
mServer.start();
String path = getPath();
path = mServer.getURL(path);
vidp.setVideoPath(path);
vidp.play();
} catch (Exception e) {
startActivity(new Intent(getActivity(), MainActivity.class));
}
}
});
}
}).start();
}
Возможный дубликат [нестационарного метода нельзя ссылаться из статического контекста] (http://stackoverflow.com/questions/2694566/non-static-method-cannot-be-referenced-from-a-static-context) –