Я изо всех сил пытался создать спиннер динамически.У меня было это на странице, но каждый раз, когда я пытался выбрать опцию, это взрывалось.Мой оригинальный код внизу.Я исправил это, переместив функцию addSpinner()
за пределы внутреннего класса и изменив
Spinner newSpinner = new Spinner(getApplicationContext());
на
Spinner newSpinner = new Spinner(this);
Это исправлено, но я понятия не имею, что изначально не работало,Кто-нибудь может объяснить?(извиняюсь, если это нубский вопрос - я новичок как в Java, так и в Android)
public class SpotManageActivity extends Activity
{
private SimpleCursorAdapter mSpots;
@Override
protected void onCreate(Bundle savedInstanceState)
{
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.reminder_manage_activity);
Button add_new_button = (Button) findViewById(R.id.add_new_spot_button);
add_new_button.setOnClickListener(new ButtonOnClickListener());
}
public class ButtonOnClickListener implements View.OnClickListener
{
@Override
public void onClick(View v)
{
addSpinner();
}
private void addSpinner()
{
LinearLayout layoutHolder =
(LinearLayout) findViewById(R.id.layout_holder);
LinearLayout spinnerHolder = new LinearLayout(getApplicationContext());
spinnerHolder.setOrientation(LinearLayout.HORIZONTAL);
spinnerHolder.setLayoutParams(
new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT, 1f));
Spinner newSpinner = new Spinner(getApplicationContext());
newSpinner.setLayoutParams(
new Spinner.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
newSpinner.setAdapter(mSpots);
layoutHolder.addView(spinnerHolder);
spinnerHolder.addView(newSpinner);
// A non-internal spot was selected
}
}
}