2012-02-07 78 views
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> 
  1. 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'的視圖(但剎車佈局,嚴重),嘗試設置標籤,但又沒有運氣。

也許任何人都可以給小費?我敢打賭,有一些簡單的方法來做到這一點,但我沒有找到它,谷歌在這裏沒有幫助。

感謝

回答

0

我真的不知道究竟你正在嘗試做的,但它聽起來就像你正試圖採取在信息並將其填充到一個視圖。我會建議有一個靜態文本框,將您的信息,並建立到一個列表視圖。如何做到這一點的一個很好的例子是位於這裏http://developer.android.com/resources/tutorials/notepad/notepad-ex1.html

+0

這些TextView包含一些默認的「數字」,但我希望他們改變(如標題:伏特加酒百分比:40金額:0,5)。 最後,我會收到一份飲料清單,我需要處理它。 – skatkov 2012-02-07 20:46:40