3
ダイナミックにスピナーを作成するのに苦労しました。私はページ上にそれを持っていたが、オプションを選択しようとするたびに爆発するだろう。私の元のコードは一番下にあります。私はそれが固定されているが、私はそれが最初に動作しませんでした何見当がつかないのインナークラスの外でaddSpinner()
機能を移動してダイナミックにスピナーを作成する
Spinner newSpinner = new Spinner(this);
に
Spinner newSpinner = new Spinner(getApplicationContext());
を変更することで、それを修正しました。誰でも説明できますか? (謝罪それはnoobの質問だ場合 - 私は、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
}
}
}
コードレビューは、作業コードを改善するため、厳密です。どのように/どのようにコードが動作しているのかに関するコードや質問を修正します。一度コードを改善してもらうには、気軽に理解してください。 –