0

Yuri Kanivets の Android ホイール ピッカーを実装しようとしています。単純に、いくつかの弦を 1 つのホイールに取り付けようとしています。私の実装が少し違うのは、AlertDialog.Builder にホイールを表示しようとしていることです。ダイアログに空のホイールを表示できますが、何も入力できないようです。ホイールに値を追加しようとするたびに、null ポインター例外が発生します。

誰かがこれに精通している場合、私が間違っていることを理解できますか? ArrayWheelAdapter で使用しているコンテキストが間違っているのではないかと強く疑っていますが、それ以外の方法がわかりません。これが私のコードです:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_find_events);

    LayoutInflater inflater = LayoutInflater.from(this);
    builderView = inflater.inflate(R.layout.wheel_range_layout, null);
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setView(builderView);       
    alert = builder.create();

    final WheelView range = (WheelView) findViewById(R.id.range);
    int defaultRange = 0;
    String ranges[] = new String[] {"10 miles", "25 miles", "50 miles", "Everywhere"};

    ArrayWheelAdapter<String> adapter = new ArrayWheelAdapter<String>(this, ranges);
    adapter.setTextSize(18);

    //this next line is where it is crashing -- maybe adapter is null???
    range.setViewAdapter(adapter);
    range.setCurrentItem(defaultRange);

    alert.show();
}
4

1 に答える 1

1

使用する

final WheelView range = (WheelView)builderView. findViewById(R.id.range);

それ以外の

final WheelView range = (WheelView) findViewById(R.id.range);

WheelView ビューはActivity レイアウトではなくrangeDialogBox レイアウトにあるため、WheelView インスタンスを初期化するためwheel_range_layout

于 2013-05-21T04:52:32.933 に答える