Я создаю приложение, которое использует два счетчика и кнопку, которая генерирует случайное число и добавляет модификатор, основанный на одном из вариантов выбора счетчика.Есть также кнопка для добавления и удаления экземпляров этой настройки:
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
}