I get that different ways. I have this as whole file I’m trying to import from java to Oxygene.
package com.accordancebible.framework;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffColorFilter;
import android.os.Build;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.internal.view.menu.ActionMenuItemView;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewTreeObserver;
import android.widget.ImageView;
import java.util.ArrayList;
public class ColorizeTheToolBar
{
static public void colorizeToolBarItem(AppCompatActivity myActivity, final String description, boolean bIsBlue)
{ int theColor;
if (bIsBlue)
theColor = myActivity.getResources().getColor(R.color.colorAccent);
else
theColor = myActivity.getResources().getColor(R.color.colorGreyToolbarIcons);
final ViewGroup decorView = (ViewGroup) myActivity.getWindow().getDecorView();
final ViewTreeObserver viewTreeObserver = decorView.getViewTreeObserver();
final String myOverflowDescription = myActivity.getString(R.string.overflow_image);
final PorterDuffColorFilter colorFilter = new PorterDuffColorFilter(theColor, PorterDuff.Mode.SRC_ATOP);
viewTreeObserver.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener()
{ @Override
public void onGlobalLayout()
{ final ArrayList<View> outViews = new ArrayList<>();
decorView.findViewsWithText(outViews, description, View.FIND_VIEWS_WITH_CONTENT_DESCRIPTION);
if (outViews.isEmpty())
return;
if (description == myOverflowDescription)
{ ImageView overflow = (ImageView) outViews.get(0);
overflow.setColorFilter(colorFilter);
}
else
{ ActionMenuItemView overflow = (ActionMenuItemView) outViews.get(0);
overflow.getCompoundDrawables()[0].setColorFilter(colorFilter);
}
removeOnGlobalLayoutListener(decorView, this);
}
});
}
private static void removeOnGlobalLayoutListener(View myView, ViewTreeObserver.OnGlobalLayoutListener myListener)
{ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN)
myView.getViewTreeObserver().removeGlobalOnLayoutListener(myListener);
else
myView.getViewTreeObserver().removeOnGlobalLayoutListener(myListener);
}
}
I get: Value cannot be null. Parameter name: value
Or, if I try to paste in these three functions from a different file (my original question):
@Override
protected void onCreate(Bundle savedInstanceState)
{ getWindow().requestFeature(Window.FEATURE_PROGRESS);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_activity_help);
mWebView = (WebView) findViewById(R.id.helpWebView);
LoadWebPage();
}
public void LoadWebPage()
{ mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setBuiltInZoomControls(true);
mWebView.getSettings().setDisplayZoomControls(false);
final Activity myActivity = this;
mWebView.setWebChromeClient(new WebChromeClient()
{ public void onProgressChanged(WebView wView, int progress)
{ myActivity.setProgress(progress * 1000);
}
}
);
mWebView.setWebViewClient(new WebViewClient()
{ public void onReceivedError(WebView wView, int errorCode, String description, String failingUrl)
{ Toast.makeText(myActivity, description, Toast.LENGTH_LONG).show();
}
}
);
mWebView.loadUrl("http://accordancefiles2.com/helpfiles/Mobile2/Advanced/Default.htm");
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{ if (event.getAction() == KeyEvent.ACTION_DOWN)
{ switch (keyCode)
{ case KeyEvent.KEYCODE_BACK:
if (mWebView.canGoBack())
mWebView.goBack();
else
finish();
return true;
}
}
return super.onKeyDown(keyCode, event);
}
I get: Error converting Java to Oxygene: Value cannot be null. Parameter name: statement
If you want more sample code to try and import, I emailed ck a dropbox link to the Android Studio project I’m trying to move over into Oxygene. Honestly, I’d rather the java to Oxygene file import work, rather than use Oxidizer on a cut and paste basis.
In addition, I’m having trouble getting my imported layouts to be recognized. I’ve tried adding as existing item, as well as creating a new layout and pasting in the code. I’m getting ‘No such static member’ on both of:
ContentView := com.accordancebible.accordance.R.layout.activity_activity_help;
mWebView = android.webkit.WebView(findViewById(com.accordancebible.accordance.R.id.helpWebView));
and Intellisense doesn’t pick up the new file under R.layout.
And the file is named (although I’ve tried variations) activity_activity_help.layout-xml.
I tried cleaning the solution, and deleting R.java and R.pas, rebuilding solution, etc., with no improvement.
It must be something I’m just not seeing.
I think I hit something like this months ago and got around it, but I can’t remember why.