如何通过按钮点击将项目添加到arraylist?

时间:2010-09-01 17:27:50

标签: android arraylist

我的代码有问题。在应用程序中,当我“添加项目”时,它没有显示任何内容,如果我点击Android应用程序周围的某个地方,那么“项目”有时会出现。 有人可以帮帮我吗?

package com.example.proov;

import java.util.ArrayList;

import com.example.proov.R;

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

public class proovin extends Activity {
    private ListView LView;


    ArrayList <String>ar = new ArrayList<String>();

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        LView = (ListView) findViewById(R.id.ListView01);
        //      Set option as Multiple Choice. So that user can able to select more the one option
                LView.setAdapter(new ArrayAdapter<String>(this,
                        android.R.layout.simple_list_item_multiple_choice, ar));
                LView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);

             Button b = (Button) findViewById(R.id.add_item);
             final EditText d = (EditText) findViewById(R.id.title);
             b.setOnClickListener(new View.OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        ar.add(d.getText().toString()); 

                    }
                });
    }
}

3 个答案:

答案 0 :(得分:2)

使用以下代码代替您的代码。

public class proovin extends Activity {

    private ListView LView;
    ArrayList <String>ar = new ArrayList<String>();

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        LView = (ListView) findViewById(R.id.ListView01);
        // Set option as Multiple Choice. So that user can able to select more
        // the one option
        final ArrayAdapter<String> adpt=new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_multiple_choice, ar);
        LView.setAdapter(adpt);
        LView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);

        Button b = (Button) findViewById(R.id.add_item);
        final EditText d = (EditText) findViewById(R.id.title);
        b.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                ar.add(d.getText().toString());
                adpt.setNotifyOnChange(true);
                LView.setAdapter(adpt);
            }
        });
    }
}

答案 1 :(得分:1)

该项可能会添加到ArrayList,但这与添加到ListView不同。您需要告诉ListView您更新了数据模型,以便它知道要查看。见ArrayAdapter.notifyDatasetChanged()

答案 2 :(得分:0)

您可以使用此添加字符串在单击按钮上列出

final String a[]={"hello","world"};
final ArrayAdapter<String> at=new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1,a);
final ListView sp=(ListView)findViewById(R.id.listView1);
sp.setAdapter(at);
final EditText et=(EditText)findViewById(R.id.editText1);
Button b=(Button)findViewById(R.id.button1);
b.setOnClickListener(new OnClickListener() 
    {

        @Override
        public void onClick(View v) 
        {
            // TODO Auto-generated method stub
            int k=sp.getCount();
            String a1[]=new String[k+1];
            for(int i=0;i<k;i++)
                a1[i]=sp.getItemAtPosition(i).toString();
            a1[k]=et.getText().toString();
            ArrayAdapter<String> ats=new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1,a1);
            sp.setAdapter(ats);
        }
    });