ホーム >  Android > ListView(データの追加)

Android -ListView(データの追加)-

要素の追加

要素の変更は、通常アダプター介して行います。

要素を追加する場合は、add()メソッドを使用します。

リストの要素を直接に変更する場合は、アダプタに変更を通知することのできるnotifyDataSetChangedメソッドを使用します。

サンプル5

ListViewEx5.java

import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class ListViewEx5 extends Activity {

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    ListView listView = new ListView(this);
    setContentView(listView);

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
        android.R.layout.simple_list_item_1);

    // 要素の追加(1)
    adapter.add("a");
    adapter.add("b");
    adapter.add("c");

    listView.setAdapter(adapter);

  }
}

(1)要素の追加

void add(T object)


データをボタンで追加するサンプル(ListViewクラス利用)

サンプル6

ListViewEx6

res/layout/main.xml

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

    <EditText
        android:id="@+id/edit_text"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:hint="入力して下さい"/>

    <Button
        android:id="@+id/btn"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="追加" />

    <ListView
        android:id="@+id/list_view"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"/>

</LinearLayout>


ListViewEx6.java

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
public class ListViewEx6 extends Activity {
  ArrayAdapter<String> adapter;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        //ListViewオブジェクトの取得
        ListView listView=(ListView)findViewById(R.id.list_view);

        //ArrayAdapterオブジェクト生成
        adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);

        //Buttonオブジェクト取得
        Button btn=(Button)findViewById(R.id.btn);

        //クリックイベントの通知先指定
        btn.setOnClickListener(new OnClickListener() {

          //クリックイベント
      @Override
      public void onClick(View v) {
        //要素追加
        addStringData();
      }
    });
        //Adapterのセット
        listView.setAdapter(adapter);

    }
    //要素追加処理
    private void addStringData(){

      //EditTextオブジェクト取得
      EditText edit=(EditText)findViewById(R.id.edit_text);

      //EditText(テキスト)を取得し、アダプタに追加
      adapter.add(edit.getText().toString());
    }
}

データをボタンで追加するサンプル(ListActivityクラス利用)

サンプル7

ListViewEx7

res/layout/main.xml

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

    <EditText
        android:id="@+id/edit_text"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:hint="入力して下さい"/>

    <Button
        android:id="@+id/btn"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="追加" />

    <ListView
        android:id="@+id/android:list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"/>

    <TextView
        android:id="@+id/android:empty"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="データは存在しません"/>

</LinearLayout>


ListViewEx7.java

import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;

public class ListViewEx7 extends ListActivity {

  ArrayAdapter<String> adapter;
  @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        //ArrayAdapterオブジェクト生成
        adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);


        //ListAdapterセット
        setListAdapter(adapter);


        //Buttonオブジェクト取得
        Button btn=(Button)findViewById(R.id.btn);

        //クリックイベントの通知先指定
        btn.setOnClickListener(new OnClickListener() {
          //クリックイベント
      @Override
      public void onClick(View v) {
        //要素追加
        addStringData();
      }
    });

    }

  //要素追加処理
    private void addStringData(){

      //EditTextオブジェクト取得
      EditText edit=(EditText)findViewById(R.id.edit_text);


      //EditText(テキスト)を取得し、アダプタに追加
      adapter.add(edit.getText().toString());
    }
}