Как добавить элемент в список с помощью кнопки? - PullRequest
0 голосов
/ 01 сентября 2010

Что-то не так с моим кодом. В приложении, когда я «добавляю элемент», оно ничего не показывает, и если я щелкаю где-нибудь вокруг приложения 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 ]

2 голосов
/ 21 августа 2012

Используйте приведенный ниже код вместо вашего кода.

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 голос
/ 01 сентября 2010

Элемент, вероятно, добавляется в ArrayList, но это отличается от добавления в ListView. Вы должны сообщить ListView, что вы обновили модель данных, чтобы она могла выглядеть. См. ArrayAdapter.notifyDatasetChanged ()

0 голосов
/ 20 марта 2013

вы можете использовать эту строку для добавления в список при нажатии кнопки

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);
        }
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...