Short source code examples

Android FAQ: What does the Android isScrollContainer XML setting do?

From the Android docs:

Set this if the view will serve as a scrolling container, meaning that it can be resized to shrink its overall window so that there will be space for an input method. If not set, the default value will be true if “scrollbars” has the vertical scrollbar set, else it will be false.

Android FAQ: Where should the ’assets’ directory be when using Android Studio?

Solution: If you want to include an assets folder in your project when using Android Studio, create the folder as src/main/assets, i.e., as an assets folder under src/main.

You can later open files in the assets folder using code like this:

InputStream is = getBaseContext().getAssets().open(relativeFilename);

where relativeFilename is the name of your file, like foo.jpg.

I just added an editable EditText widget to an Android application, and I needed to make the EditText a certain height, and also make the text in the EditText scroll, in case the user added some really long text. I used the following XML in my Android layout to make this happen:

Here’s some source code that shows how to add an Android OnClickListener to a CheckBox:

Here’s a source code snippet that shows how to create an Android AlertDialog. If I remember right, I got the initial code from Stack Overflow, and then adapted it for my need, which was to confirm that the user wanted to delete an image from an image gallery:

While writing some Java code today, I needed a method to get the extension from a filename. This code solved the problem:

public static String getFilenameExtension(String filename) {
    String extension = "NoExtension";
    int i = filename.lastIndexOf('.');
    if (i > 0) {
        extension = filename.substring(i + 1);
    }
    return extension;
}

Given an input filename like foo.jpg, the getFilenameExtension method returns the “jpg” part as a String.

I’ve seen a few approach to handling a Swift “Value Changed” event, but when you’re only interested in whole number (50, 51, etc.), this approach seems the simplest:

As a quick note to self, I used this Apache httpd.conf configuration in MAMP on my MacBook Pro when developing my “Focus” web application in 2014:

These are some notes on what happens when I use a PreferenceFragment with the Google Navigation Drawer code.

These are the Fragment lifecycle methods that are run when I go to my PreferenceFragment the first time:

I’ve been working on an Android app that uses a navigation drawer, and uses fragments for each item in the drawer that you tap on. One of the items in the nav drawer is a “Preferences” item, so when I tap on that item, I run the following code from my nav drawer code:

Here’s a short example of how to use an Intent to launch an Android Activity, while also adding some data (an “extra”) to the activity-launching process:

Use this code to get the Android screen orientation:

// orientation (either ORIENTATION_LANDSCAPE, ORIENTATION_PORTRAIT)
int orientation = getResources().getConfiguration().orientation;

As shown in the comment, the resulting orientation will either be ORIENTATION_LANDSCAPE or ORIENTATION_PORTRAIT. See the Android docs for more information.

 

As a quick note, I was just in a situation where I wanted to get my ActionBar’s Back/Up button to work just like the Android back button. To get it to work like that, I used this Java code in my Fragment class:

This Java code shows how to implement a couple of things in an onCreateView method inside a Fragment class:

As two quick Android “drawable” notes, if you want to convert a drawable resource into a Drawable reference, you can use code like this:

Drawable myImage = getResources().getDrawable(R.drawable.myImage);

Second, if you want to display a drawable image resource on an ImageView, you can use code like this:

imageView.setImageResource(R.drawable.myImage);

(I share little code snippets out here like this because I can never remember how to do some of these things.)

If you’re working with an Android application, this source code seems to work to load an image from a file:

Bitmap bitmap = BitmapFactory.decodeFile(pathToPicture);

The Bitmap and BitmapFactory classes are located in the android.graphics package:

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;

Assuming that your pathToPicture is correct, you can then add this bitmap image to an ImageView like this:

When you want to provide Up/Back/Home navigation in an Android sub-activity, this Java code doesn’t seem to be needed:

getActionBar().setDisplayHomeAsUpEnabled(true);

The “Add Up Action” docs on this Android.com page state that is needed, but as of some (unknown) Android version it is not needed. All you need to do is specify the “Up/Parent” activity in your AndroidManifest.xml file, like this:

As a quick Android “centering” tip, I found that by adding this snippet to the ImageButton below:

android:layout_gravity="center"

I was able to get the ImageButton to center itself in the Toolbar. Here’s the layout code for the Toolbar and the ImageButton:

As another quick Android example, this Java source code shows how to add a “click listener” (on click/tap event) to an Android Button:

To set an image on an Android ImageButton, you basically just need to put your image in the “res/drawable” directories, and then add this tag to your ImageButton XML definition:

android:src="@drawable/my_image"

That assumes the image file is named my_image.png.

Here’s a full ImageButton example to demonstrate this: