0
大家好日子,從動態列表中獲取值
我正在學習Android開發,並嘗試爲我的應用程序構建一些動態列表。我被卡住了......已經有4個小時了。
我有兩個佈局: 1. main.xml中
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/action_buttons"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:gravity="center"
>
<Button
android:id="@+id/button_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_calculate" />
<Button
android:id="@+id/button_add"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/button_count"
android:text="@string/button_add" />
</LinearLayout>
<ScrollView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/action_buttons"
>
<LinearLayout
android:id="@+id/action_list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
</LinearLayout>
</ScrollView>
</RelativeLayout>
action_list_item.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/action_list_item_root" android:layout_width="fill_parent" android:layout_height="wrap_content" > <EditText android:id="@+id/action_list_item_edittext_drinkName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/action_list_item_button_remove" android:layout_alignParentTop="true" android:layout_toRightOf="@+id/action_list_item_title" android:padding="10dp" /> <EditText android:id="@+id/action_list_item_edittext_drinkPercent" android:text="40" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_toLeftOf="@+id/action_list_item_edittext_drinkAmount" android:inputType="number" android:padding="10dp"/> <EditText android:id="@+id/action_list_item_edittext_drinkAmount" android:text="0.0" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_toLeftOf="@+id/action_list_item_button_remove" android:layout_alignBottom="@+id/action_list_item_button_remove" android:inputType="numberDecimal" android:width="50dp" android:padding="10dp" /> <Button android:id="@+id/action_list_item_button_remove" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:text="@string/action_list_item_button_remove" />
和代碼,創建動態列表:
public class MainActivity extends Activity {
LinearLayout actionList = null;
private Button btnAdd;
private Button btnCalculate;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initActivityElements();
}
private void initActivityElements() {
initAddButton();
initCalculateButton();
}
private void initCalculateButton() {
btnCalculate = (Button) findViewById(R.id.button_count);
btnCalculate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
TextView amount = (TextView) findViewById(R.id.action_list_item_edittext_drinkAmount);
//this retrives TextView value from first list
Toast.makeText(getApplicationContext(), amount.getText().toString(),
Toast.LENGTH_SHORT)
.show();
}
});
}
private void initAddButton() {
actionList = (LinearLayout) findViewById(R.id.action_list);
btnAdd = (Button) findViewById(R.id.button_add);
btnAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
RelativeLayout listItem = (RelativeLayout) View.inflate(
MainActivity.this, R.layout.action_list_item, null);
TextView name = (TextView) listItem
.findViewById(R.id.action_list_item_edittext_drinkName);
name.setText("Here is the Title " + actionList.getChildCount());
listItem.findViewById(R.id.action_list_item_button_remove)
.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
actionList.removeView((View) v.getParent());
}
});
actionList.addView(listItem);
}
});
}
我的問題是,我需要得到的TextView箱(金額,百分比)的所有數據,但我只能從列表中的第一項retrive的數據(看onClickListener爲btnCalculate),並能不知道該怎麼做,但試圖添加'獨特的ID'的視圖(但剎車佈局,嚴重),嘗試設置標籤,但又沒有運氣。
也許任何人都可以給小費?我敢打賭,有一些簡單的方法來做到這一點,但我沒有找到它,谷歌在這裏沒有幫助。
感謝
這些TextView包含一些默認的「數字」,但我希望他們改變(如標題:伏特加酒百分比:40金額:0,5)。 最後,我會收到一份飲料清單,我需要處理它。 – skatkov 2012-02-07 20:46:40