T.S
T.S

Reputation: 135

How to add data in array on button click?

    int size = mcq.size();


    String arr[] = null;
    int i;
    {


        for (i = 0; i < size; i++) {


            if (op1.isPressed()) {
                arr[i] = tv1.getText().toString();
                // Log.e("Array",arr[i]);

            } else if (op2.isPressed()) {
                arr[i] = tv2.getText().toString();
                //Log.e("Array",arr[i]);

            } else if (op3.isPressed()) {
                arr[i] = tv3.getText().toString();
                //  Log.e("Array",arr[i]);


            } else if (op4.isPressed()) {
                arr[i] = tv4.getText().toString();
                //Log.e("Array",arr[i]);


            }

I am trying to store the data in an array when the button is pressed,but it always shows null.And when the for loop is over I want to display my array.

Upvotes: 0

Views: 3844

Answers (4)

User Learning
User Learning

Reputation: 3473

here , Arrays in Java have a size so u cannot do like this. Instead of this use list,

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

Inorder to do using String array :

String[] arr = new String[SIZEDEFNE HERE];

For ur answer :

ArrayList<String> arr = new ArrayList<String>();
    int i;
        {
            for (i = 0; i < size; i++) {
                if (op1.isPressed()) {
                    arr.add(tv1.getText().toString()); 
                } else if (op2.isPressed()) {
                    arr.add(tv2.getText().toString()); 

                } else if (op3.isPressed()) {
                    arr.add(tv3.getText().toString()); 

                } else if (op4.isPressed()) {
                    arr.add(tv4.getText().toString()); 
                }

Retrive value using

String s = arr.get(0);

Upvotes: 2

user5248371
user5248371

Reputation:

Try Array List. use the following code in your main java

final ArrayList<String> list = new ArrayList<String>();

Button button= (Button) findViewById(R.id.buttonId);
final EditText editText = (EditText) findViewById(R.id.editTextId)
button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        list.add(editText.getText().toString());
    }
});

Upvotes: 1

Amit Ranjan
Amit Ranjan

Reputation: 567

To avoid duplication in arraylist .You can use arraylist for faster then String array

ArrayList<String> list = new ArrayList<String>();
    list.add("Krishna");
    list.add("Krishna");
    list.add("Kishan");
    list.add("Krishn");
    list.add("Aryan");
    list.add("Harm");

System.out.println("List"+list);
HashSet hs = new HashSet();
hs.addAll(list);
list.clear();
list.addAll(hs);

Upvotes: 0

jayeshsolanki93
jayeshsolanki93

Reputation: 2136

This is because your string array is null. Declare it with the size as

String[] arr = new String[size];

Upvotes: 1

Related Questions