2016-06-11 55 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(); 
} 
相關問題