如何从ListView中的EditText填充内容?

时间:2016-03-11 07:45:29

标签: android xml android-layout listview

我有一个布局文件,我在其中定义了ListView和另一个布局文件,其中我已经定义了单个列表元素的样式。 OnClick如何使用其他布局填充ListView?或者甚至可以这样做?

这是我的ListView

<ListView
    android:id="@+id/chat_list"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="80dp"
    >
</ListView>

<RelativeLayout
    android:id="@+id/form"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:orientation="vertical">

</RelativeLayout>

<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:inputType="textMultiLine"
    android:ems="10"
    android:id="@+id/chat"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_toLeftOf="@+id/send_button"/>

<Button
    android:layout_width="80dp"
    android:layout_height="80dp"
    android:background="@drawable/icons_chat"
    android:height="20dp"
    android:width="20dp"
    android:id="@+id/send_button"
    android:onClick="sendChat"
    android:layout_alignBottom="@+id/chat"
    android:layout_alignParentRight="true"
    />

这是我的其他布局

<EditText
    android:id="@+id/user_title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
<EditText
    android:id="@+id/chat_message"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

OnClick我希望getText来自第一个布局中的EditText,并使用第二个布局中的样式更新ListView。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

我认为,实现此目的的一种方法是使用ArrayAdapter,这会使您的Collection(您想要使用的)适应您的布局ListView中的项目。例如

 public class YourActivity extends Activity {

        private ListView listView;

        public void onCreate(Bundle saveInstanceState) {
             setContentView(R.layout.your_layout);

             listView= (ListView) findViewById(R.id.you_list_id);

             //Here you can set values from your edit texts
             ArrayList<String> yourArrayList = new ArrayList<>();
             yourArrayList.add("someTextFromYourEditTexts");
             yourArrayList.add("someTextFromYourEditTexts");

           //Create your ArrayAdapter with your already populate array list
             ArrayAdapter<String> yourArrayAdapter = new ArrayAdapter<String>(
                     this, 
                     android.R.layout.simple_list_item_1,
                     yourArrayList );

             //And when your adapter is create set it to your list view
             listView.setAdapter(yourArrayAdapter); 
        }
    }