从自定义列表视图中的行中获取小部件

时间:2014-01-18 11:50:02

标签: android android-listview arraylist android-arrayadapter

  

我有一个列表视图,每行包含一个textview和一个edittext。一世   列表视图下方还有一个按钮,我只想访问   listview的所有行的edittext小部件。有人能帮助我吗?

HexList布局:这是我的主列表视图,其中包含自定义行。在主列表视图下方,我有一个按钮"另存为"。单击按钮我想访问每行的edittext。我对用于获取edittext小部件的类感到困惑,即listview或listview的适配器。

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent" >

    <ListView
        android:id="@+id/listViewHex1"
        android:layout_width="match_parent"
        android:layout_height="300dp"
        android:layout_above="@+id/saveButton1"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" >    
    </ListView>

    <Button
        android:id="@+id/saveButton1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:text="@string/save" />    
</RelativeLayout>    
  

HexRow布局:这是我的listview行,包含textview和edittext。

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/hexrowlayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <EditText
        android:id="@+id/hexEditTextRow"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="textShortMessage" >

        <requestFocus />
    </EditText>

    <TextView
        android:id="@+id/hexTextViewRow"
        android:layout_width="match_parent"
        android:layout_height="30dp" />

</LinearLayout>

在主要活动中,我尝试访问每个和每行的编辑文本。

Button saveToFile = (Button) findViewById(R.id.saveButton1);
saveToFile.setOnClickListener(new OnClickListener() {

    public void onClick(View arg0) {
        // Saving hexcode button names from edittext into vitaminslist

        {
            int size = aa.getCount();
            for(int i = 0; i < size; i++){
                //benefits.getChi
                EditText e = (EditText) aa.getView(i, benefits, null);
            HexCode he = vitaminsList.get(i);
            he.setName(e.getText().toString());
            }

        }

    }
});

1 个答案:

答案 0 :(得分:2)

尝试类似的事情,你可能会回答上帝。

Button saveToFile = (Button) findViewById(R.id.saveButton1);
saveToFile.setOnClickListener(new OnClickListener() {

public void onClick(View arg0) {
    {
        int size = myListView.getCount();
        for(int i = 0; i < size; i++){

        View view = myListView.getChildAt(i);

        EditText e = (EditText) view.findViewById(R.id.hexEditTextRow);
        HexCode he = vitaminsList.get(i);
        he.setName(e.getText().toString());

     }
    }
  }
});