【发布时间】:2011-12-05 06:35:39
【问题描述】:
我正在努力动态创建微调器。我在页面上有它,但每次我尝试选择一个选项时它都会爆炸。我的原始代码在底部。我通过将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
}
}
}
【问题讨论】:
-
代码审查严格来说是为了改进工作代码。修复代码或关于代码如何/为什么工作的问题不属于那里。如果您在了解后需要进一步帮助改进您的代码,请随时将其带回来。