0

kankanのホイールウィジェットをここhttp://code.google.com/p/android-wheel/downloads/listから*.apkとしてダウンロードし、* 。jarファイルに変換しました。このjarファイルをライブラリとしてプロジェクトに添付しました。すべてが正常に動作します。ライブラリからすべてのクラスをインポートして、プロジェクトで使用できます。ただし、アクティビティでホイールオブジェクトを作成すると、正しく機能しますが、ホイールの正しい背景が表示されません。代わりに、私のプロジェクトからランダムに描画できるものがいくつか表示されます。私が間違っているのは何ですか?この問題を解決するためにどこを見ればよいですか?これが私のxmlレイアウトとDialogPreferenceクラスです。助けてください!!!ありがとう。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="12dp"
    android:background="@drawable/layout_bg" >

    <kankan.wheel.widget.WheelView
android:id="@+id/number"
android:layout_height="wrap_content"
android:layout_width="140dp" />
</LinearLayout>

NumberPickerPreference.java

import kankan.wheel.widget.OnWheelChangedListener;
import kankan.wheel.widget.WheelView;
import kankan.wheel.widget.adapters.NumericWheelAdapter;
import android.content.Context;
import android.preference.DialogPreference;
import android.util.AttributeSet;
import android.view.View;

public class NumberPickerPreference extends DialogPreference {


public NumberPickerPreference(Context context, AttributeSet attrs) {
    super(context, attrs);
    setDialogLayoutResource(R.layout.number_picker_layout);
}

@Override
    protected View onCreateDialogView() {
 view view = super.onCreateDialogView();

return view;
}

@Override
protected void onBindDialogView(View view) {
    super.onBindDialogView(view);

    WheelView numberPicker = (WheelView)view.findViewById(R.id.number);
    numberPicker.setViewAdapter(new NumericWheelAdapter(getContext(), 0, 99, "%02d"));
    numberPicker.setCyclic(true);
    numberPicker.setCurrentItem(17);
}

/**
 * Adds changing listener for wheel that updates the wheel label
 * @param wheel the wheel
 * @param label the wheel label
 */
private void addChangingListener(final WheelView wheel, final String label) {
    wheel.addChangingListener(new OnWheelChangedListener() {
        public void onChanged(WheelView wheel, int oldValue, int newValue) {
            //wheel.setLabel(newValue != 1 ? label + "s" : label);
        }
    });
}
 }
4

1 に答える 1

0

私はそれを理解します。ライブラリの競合の問題が発生したようです。ライブラリプロジェクトandroid-support-v4.jarライブラリファイルのJavaビルドパスから削除して修正しました。

于 2012-08-07T15:56:55.997 に答える