Копия экземпляра макета не работает должным образом - PullRequest
0 голосов
/ 25 сентября 2019

Я создаю приложение, которое использует два счетчика и кнопку, которая генерирует случайное число и добавляет модификатор, основанный на одном из вариантов выбора счетчика.Есть также кнопка для добавления и удаления экземпляров этой настройки:

 Spinner | Spinner | Button | Delete
              Add Instance

Когда я создаю первый экземпляр этой настройки, все работает, как задумано, но когда я создаю второй экземпляр, все работает, кроме кнопки, котораягенерирует число, и я не уверен, почему.

Основная деятельность:

public class MainActivity extends AppCompatActivity {

    private LinearLayout parentLinearLayout;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        parentLinearLayout = (LinearLayout) findViewById(R.id.parent_linear_layout);
    }
    //Layout containing the spinners and buttons for monsters


    public void onAddField(View add) {
        LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        final View rowView = inflater.inflate(R.layout.field, null);
        parentLinearLayout.addView(rowView, parentLinearLayout.getChildCount() - 1);
    }
    //Creates new instance of the layout




    public void onClick(View Roll) {


        final Spinner stSpinner = (Spinner) findViewById(modifier);
        //Calls on the "modifier" spinner when needed

        Button btn = findViewById(roll);

        btn.setOnClickListener(new AdapterView.OnClickListener() {
            //listener for the "Roll" button
            @Override
            public void onClick(View Roll) {
                Random rand = new Random();

                int d20 = rand.nextInt(20);

                d20 += 1;
                //Random number generator 1-20

                int result = /*d20*/ + Integer.parseInt(stSpinner.getSelectedItem().toString());
                Toast.makeText(getApplicationContext(), String.valueOf(result), Toast.LENGTH_SHORT)
                        .show();
                //Outputs the random number and adds the "modifier" spinner to the result as a Toast Message
            }
        });
    }



    public void onDelete(View delete) {
        parentLinearLayout.removeView((View) delete.getParent());
    }
    //Deletes monster instances
}
...