0

以下が基本的な問題だと思います。

Android SDK によって提供されるものがないため、この番号ピッカーを使用します: http://www.quietlycoding.com/?p=5&cpage=1#comment-10645

膨らんだアラートダイアログに統合しました。膨張したレイアウトは次のとおりです。

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
>
    <com.example.NumberPicker
        android:padding="10dp"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
</LinearLayout>

アラートダイアログにボタンを追加しました。クリックされたら、ナンバーピッカーの現在の値を取得したいです。

ナンバー ピッカー クラスは次の機能を提供します。

 public static int getCurrent() {
        return mCurrent;
    }

問題は、それを呼び出す方法がわからないことです。私はクラスのオブジェクトを持っていません。com.example.NumberPicker.getCurrent() を介して呼び出すと、静的であると宣言する必要があり、これにはいくつかの悪影響があります。

getCurrent() 関数を呼び出すためにピッカー クラスのオブジェクトを取得する方法を誰かが知っていますか?

アラートダイアログで実行中のオブジェクトから関数を呼び出したいので、単純に新しいオブジェクトを作成するのは正しい方法ではないと思います。

編集:私が期待したように:

NumberPicker np = new NumberPicker(MainScreen.this);
Log.v("TEST", "" + np.getCurrent());

これにより、常に0になります

編集 2: Android ID を追加しました:

<com.example.NumberPicker
        android:id="@+id/numberPicker"
        android:padding="10dp"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

私のコードは次のとおりです。

    LayoutInflater factory = LayoutInflater.from(this);
            final View textEntryView = factory.inflate(
                    R.layout.backfall_layout, null);



            new AlertDialog.Builder(MainScreen.this)
                    .setTitle(this.getString(R.string.relapse))
                    .setView(textEntryView)
                    .setPositiveButton("OK",
                            new DialogInterface.OnClickListener() {
                                public void onClick(DialogInterface dialog,
                                        int whichButton) {
                                NumberPicker np = (NumberPicker) findViewById(R.id.numberPicker);

                                Log.v("TEST", "" + np.getCurrent());

--

しかし、ボタンを押すとアプリがクラッシュするようになりました..

編集3:

解決済み:電話する必要があります

NumberPicker np = (NumberPicker) textEntryView.findViewById(R.id.cigarettesPicker);
            np.setCurrent(1);
4

1 に答える 1

2

getCurrent()関数を呼び出すためにピッカークラスのオブジェクトを取得する方法を誰かが知っていますか?

  1. レイアウトXMLの要素にandroid:id値を追加します。NumberPicker

  2. のレイアウトを膨らませるときは、膨らませたレイアウトをAlertDialog呼び出しfindViewById()、手順1で指定したIDを渡して、結果をにキャストしますNumberPicker

于 2011-11-12T15:12:29.457 に答える