HOME > Android > ListView(データの追加)

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

要素の追加

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

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

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

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クラス利用)

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クラス利用)

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());
    }
}
Copyright © 2018   MitoRoid  All Rights Reserved.