сделать можно как угодно: сам видишь, что это нетрудно..
но нужна четкая и однозначная логика действий, которую у тебя уловить сложно: "а если потом на вторую кнопку" - а если не потом, а до.., а если в первом текстфилде не first, а third, что если все текстфилды уже заняты, то все: больше нет выбора?.. и еще много таких если..
продумай логику/алгоритм приложения, по нему и пиши и все встанет на свои места само собой..
вариант (при выборе сверх запланированных мест, выкидывает первый):

Код:
var products:Array=["first","second","third"];
var choices:Array=[];
var labels:Array=[tf1,tf2,tf3,tf4];//текстфилды (сколько надо)
var buttons:Array=[but1,but2,but3];//кнопки (по числу продуктов)
function butPress(){
choices.push(products[this.tag]);
if(choices.length>labels.length) choices.shift();
for(var i in labels) labels[i].text=choices[i] || "";
}
for(var i in buttons){
buttons[i].tag=i;
buttons[i].onPress=butPress;
}