2011-08-14 103 views
3

我很努力地动态创建微调框。我在页面上有它,但每次我试图选择一个选项,它会炸毁。我的原始代码位于底部。我固定它通过移动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 
     } 

    } 

} 
+0

代码审查是严格的改进工作代码。修复关于代码工作方式/原因的代码或问题不属于此处。如果您希望获得进一步的帮助,只要您明白,随时可以将其恢复。 –

回答