Android Coding Questions

Where's an example of layout used by ListActivity?

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
         android:orientation="vertical"
         android:layout_width="fill_parent" 
         android:layout_height="fill_parent"
         android:paddingLeft="8dp"
         android:paddingRight="8dp">
 
    <ListView android:id="@id/android:list"
               android:layout_width="fill_parent" 
               android:layout_height="fill_parent"
               android:layout_weight="1"
               android:drawSelectorOnTop="false"/>
 
 	<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/AnotherTextView"></TextView>
	
</LinearLayout>

How do I start another activity?

  startActivity(new Intent(this, MyAnotherActivity.class));

+ Don't forget to add lines in AndroidManifest.xml

How to add EditText fields to the table's cells?

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:scrollbars="vertical" android:layout_height="fill_parent"
	android:layout_width="fill_parent" android:stretchColumns="*">
	<TableRow android:id="@+id/tablerow1">
		<EditText android:text="1." android:id="@+id/EditText01"
			android:editable="false"></EditText>
		<EditText android:id="@+id/EditText11"></EditText>
		<EditText android:id="@+id/EditText21"></EditText>
	</TableRow>
</TableLayout>

How to get Eclipse and Android work in Ubuntu?

For eclipse you need to use sun java packages (gcc gjc java is installed by default but it does not seem to work well)

Ubuntu 9.10 repositories have Eclipse 3.5.1. It does not work with Android SDK. Get newer Eclipse. Version 3.5.2 seem to work.

  • http://www.eclipse.org ⇒ Download ⇒ Eclipse for Java (or Java EE (not nessessary)).
  • Extract it to your self installed software place (eg. /opt) and link eclipse start program to some place in your PATH.

Follow general android install instructions.

How to save XML file after editing (f.e. adding new child) - what class to use?

To use XmlSerializer is one option to save XML into readable form (string or file).

See the following link Working with XML on Android if that is helpful.

private String writeXml(List<Message> messages){
    XmlSerializer serializer = Xml.newSerializer();
    StringWriter writer = new StringWriter();
    try {
        serializer.setOutput(writer);
        serializer.startDocument("UTF-8", true);
        serializer.startTag("", "messages");
        serializer.attribute("", "number", String.valueOf(messages.size()));
        for (Message msg: messages){
            serializer.startTag("", "message");
            serializer.attribute("", "date", msg.getDate());
            serializer.startTag("", "title");
            serializer.text(msg.getTitle());
            serializer.endTag("", "title");
            serializer.startTag("", "url");
            serializer.text(msg.getLink().toExternalForm());
            serializer.endTag("", "url");
            serializer.startTag("", "body");
            serializer.text(msg.getDescription());
            serializer.endTag("", "body");
            serializer.endTag("", "message");
        }
        serializer.endTag("", "messages");
        serializer.endDocument();
        return writer.toString();
    } catch (Exception e) {
        throw new RuntimeException(e);
    } 
}

Does anybody know how to launch another application, e.g. "YouTube" from your own program?

I know how to launch web-browser, if smb needs I can explain. Also I've installed some applications to the emulator, except YouTube :(. By the way we know how to send data from one activity to another and few other features, that could be useful just ask, may be we've faced with it! Vadim.

A: A generic answer to this is that you need to know the intent filter of the started activity/application. When you know the intent filter you can always create intent that is going to match to the filter. Then, it is simply just a call on Context.startActivity(intent). All the “standard” platform applications and their AndroidManifest.xml files are in the public repository.

How to add question ?

Log into wiki, find this question (index) page, and add a question beginning the this page, after first headline.

  ==== My Problem ? ====
  How to get functionality X to work ?

How to answer a question ?

Just write a solution text into section, after question.

If solution is bigger that one paragraph size (having eg. couple screenshots), it is good idea document solution into separate page.

  Solution in [[separate page]]