Question: Is it possible to use Java code to write to the main.xml file?
I want to make some changes to the layout but have it based from values received from Java?

Answer: 
Yes you can. Read more about YOURLAYOUT.LayoutParams 

<http://developer.android.com/reference/android/widget/LinearLayout.LayoutParams.html>
Use the `addRule()` and specify what you need to your layout object.
Change the values before you do `setContentView();`

Something like: 

```
 RelativeLayout rl = new RelativeLayout(this);
       RelativeLayout.LayoutParams rlp= new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.FILL_PARENT);
       rlp.addRule(RelativeLayout.VISIBLE); //set the rules and parameters before you do setLayoutParams();
       rl.setLayoutParams(rlp);  
       setContentView(rl);

```

Or if you want to make changes on the actual layout from the xml then you do the inflating

```
  LayoutInflater inflater = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    View v = inflater.inflate(R.layout.main, null);
    RelativeLayout rl = (RelativeLayout)v.findViewById(R.id.relativeLayout1);
    RelativeLayout.LayoutParams rlp= new RelativeLayout.LayoutParams(new LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT));
    rlp.addRule(RelativeLayout.VISIBLE);
    rl.setLayoutParams(new LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT));   
    setContentView(rl);

```
You can't actually change any xml layout file from within the application. Once packaged, the layout files are read-only. What you can do (and I think this is what Nikola is suggesting) is use the api to either define your layout using code or modify the layout once it has been inflated from xml.

If you want to calculate or retrieve some data that defines your layout, and then remember the data for the next time the app runs, you can use one of the [data storage methods](http://developer.android.com/guide/topics/data/data-storage.html) that Android offers.