【问题标题】:Creating a spinner dynamically动态创建微调器
【发布时间】: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
        }

    }

}

【问题讨论】:

  • 代码审查严格来说是为了改进工作代码。修复代码或关于代码如何/为什么工作的问题不属于那里。如果您在了解后需要进一步帮助改进您的代码,请随时将其带回来。

标签: java android spinner


【解决方案1】:

我完全不确定,但如果在堆栈跟踪中您得到关于错误上下文的信息,可能是因为单击 Spinner 时会打开一个 Dialog,而 Dialog 需要一个 Activity 上下文。

更多信息:

【讨论】:

    猜你喜欢
    • 2012-09-12
    • 1970-01-01
    • 2012-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-07
    相关资源
    最近更新 更多