2016-06-11 270 views
0

我想制作一个简单的Planner应用程序,所以我有一个XML文件,它上面有一个ListView,另一个XML文件上有一个EditText和一个sumbit按钮,以及当然我的Java文件。我已经做了大量的研究,但我找不到工作方法,当我按下按钮时,它将EditText东西作为一个项目添加到ListView。这里是我的代码:Android Studio添加EditText输入到一个ListView与按钮onClick

activity_main.xml中

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".MainActivity" > 

    <ListView 
     android:layout_width="300dp" 
     android:layout_height="fill_parent" 
     android:id="@+id/event_list" 
     android:layout_alignParentStart="true" 
     android:layout_toStartOf="@+id/datePicker" /> 

    <DatePicker 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/datePicker" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentEnd="true" /> 

    <CalendarView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/calendarView" 
     android:layout_alignBottom="@+id/datePicker" 
     android:layout_alignParentEnd="true" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="New Event" 
     android:id="@+id/button" 
     android:layout_centerVertical="true" 
     android:layout_alignEnd="@+id/datePicker" 
     android:layout_toEndOf="@+id/event_list" 
     android:background="@android:color/holo_blue_light" 
     android:onClick="newEvent" 
     android:textSize="20dp" 
     android:textColor="@android:color/white" /> 
</RelativeLayout> 

new_plan.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:weightSum="1"> 

    <EditText 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/event_name" 
     android:hint="Event Name" 
     android:inputType="textCapWords"/> 

    <EditText 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/event_date" 
     android:hint="Event Date" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Save" 
     android:id="@+id/button2" 
     android:layout_gravity="center_horizontal" 
     android:background="@android:color/holo_blue_light" 
     android:textSize="20dp" 
     android:textColor="@android:color/white" /> 

</LinearLayout> 

MakePlan.java

package com.kass.planner; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 

public class MakePlan extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.new_plan); 
    } 

} 

MainActivity.java

package com.kass.planner; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.ArrayAdapter; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.ListView; 

import java.util.ArrayList; 

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 

    public void newEvent(View v){ 
     Intent i = new Intent(this, MakePlan.class); 
     startActivity(i);}} 

请帮忙,谢谢。

回答

0

你应该将数据添加到通过您的适配器连接到您的ListView项目的集合,并通知您的适配器,您的数据已经改变。此插图假定您有一个String对象列表。

EditText editText = ... 
List<String> list = ... 
YourAdapter adapter = ... 
ListView listView = ... 

你一定是做了这样的事来设置你的listView。

listView.setAdapter(new YourAdapter(list, this)); 

现在按钮点击你应该得到的EditText字符串,将它添加到你的清单,最后通知你的数据,以便改变,即可更新例如ListView控件适配器

void OnButtonClick(View view){ 
    String strToAdd = editText.getText().toString(); 
    list.add(strToAdd); 
    adapter.notifyDataSetChanged(); 
} 
相关问题