Archive for the ‘Development’ Category
Wednesday, March 14th, 2012
In cases like when I simply want to make a System.out.println or similar with some details of a exception then the following static helper function is very nice as it takes the exception (uses printStackTrace) and returns a string with the contents of it.
public static String getStackTrace(Exception e){
StringWriter stringWriter = new StringWriter();
PrintWriter printWrtier = new PrintWriter(stringWriter);
e.printStackTrace(printWrtier);
return stringWriter.toString();
}
Tags: exception, Java, printStackTrace
Posted in Java | No Comments »
Monday, March 12th, 2012
This will create a custom dialog.
AlertDialog.Builder builder;
AlertDialog alertDialog;
Context mContext = this;
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.help_dialog, (ViewGroup) findViewById(R.id.layout_root));
TextView text = (TextView) layout.findViewById(R.id.text);
text.setText(getString(R.string.help_string));
builder = new AlertDialog.Builder(mContext);
builder.setView(layout);
alertDialog = builder.create();
alertDialog.show();
And create a “help_dialog.xml” this name is from the inflater
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_root"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
>
<TextView android:id="@+id/text"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:textColor="#FFF"
/>
</LinearLayout>
LayoutInflater at android dev
Tags: Android, android.app.AlertDialog.Builder, android.content.Context, android.view.LayoutInflater, Java
Posted in Android | No Comments »
Monday, March 12th, 2012
Sometimes there is a need to access recourses from static methods.
In order to do this we need to pass along the Context to the method and use getString from that Context.
Example:
package com.f15ijp.android.test;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.view.WindowManager;
public class Help {
public static AlertDialog helpDialog(Context theContext, String helpMessage){
AlertDialog alertDialog = new AlertDialog.Builder(theContext).create();
alertDialog.setTitle("Help");
alertDialog.setMessage(helpMessage);
alertDialog.setButton(theContext.getString(R.string.close_help_btn), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
return;
}
});
WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
lp.copyFrom(alertDialog.getWindow().getAttributes());
lp.width = WindowManager.LayoutParams.FILL_PARENT;
lp.height = WindowManager.LayoutParams.FILL_PARENT;
/*by calling alertDialog.show() now and then again after setAttributes the background
* the background activity is replaced by a black box.
* If this first alertDialog.show() is removed then the (current) acitivity is used as a background.
*/
alertDialog.show();
alertDialog.getWindow().setAttributes(lp);
return alertDialog;
}
}
Tags: Android, android.app.AlertDialog.Builder, android.content.Context, Java, R.string
Posted in Android | No Comments »
Friday, March 9th, 2012
In java it is not hard to iterate over a Map. The following example is quick and simple (and if your Map is not of this sort you can change it accordingly easily).
for (Map.Entry<String, Object> entry : map.entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
// ... do important stuff here!
}
Tags: Java, Map
Posted in Java | No Comments »
Friday, March 9th, 2012
When using myList.length() you will get an error message similar to this one
[INFO] Compiling 10 source files to /.../target/classes at 1317721118837
[ERROR] /.../src/main/scala/code/lib/MyLib.scala:216: error: Int does not take parameters
[INFO] var listLength = myList.length()
What the error means is that length is not a function, but simply a property and you should use myList.length and not myList.length()
Tags: liftweb, list, Scala, scala lift
Posted in Lift, Scala | No Comments »
Friday, March 9th, 2012
Creating an empty box in scala lift is not hard, simply fill it with None.
var emptyBox:Box[MyThing] = Box(None);
Tags: Box, liftweb, scala lift
Posted in Lift | No Comments »
Friday, March 9th, 2012
If you need to use the session id of the current session then it can be fetched from S.
S.containerSession.map(_.sessionId).openOr(""))
Tags: liftweb, scala lift, session
Posted in Lift | No Comments »
Wednesday, March 7th, 2012
Doing a toString on a array don’t really tell that much about the array. Here is one way to get the contents of the array as a string.
int[] myArray = new int[2];
myArray[0] = 1; myArray[1] = 2;
System.out.println("array contains " + java.util.Arrays.toString(myArray));
//will output array contains [1, 2]
Tags: Array, Java, java.utils.Arrays
Posted in Java | No Comments »
Wednesday, March 7th, 2012
The Integer Class have a static method toString that takes a int as input and gives us back a string.
int myInt = 1;
System.out.println(Integer.toString(myInt);
This is a log more efficient and nice in the long run than just concating the int with a empty string ( myInt + “” ) as that actually creates a bit of overhead. Not much, but still.
Tags: int, Integer, Java
Posted in Java | No Comments »
Wednesday, March 7th, 2012
To convert from a Boolean to a string
new Boolean(new String("hej".equalsIgnoreCase("HEJ")).toString();
and then from a string to a boolean
boolean theValue = Boolean.parseBoolean(strBoolean);
Tags: bool, Boolean, Java, String
Posted in Java | No Comments »