ホイールエフェクトViewの日付セレクタと時刻セレクタとダイアログ

5610 ワード

ホイールエフェクトViewの日付セレクタと時刻セレクタとダイアログ
これまでローラー効果を使う時間Viewが必要だったので、しばらく模索して自分で1つカプセル化したので、皆さんに少し役に立つはずです.もともと私は1つのマルチメニューの中で時間をフィルタリングしていたので、ダイアログボックスは少し突き出ているに違いありません.他のいくつかの条件は下に現れているので、時間もその効果が必要です.フィルタボックスは次のとおりです.
時間のフィルタ表示も上の効果が必要です.
フィルタフレームの使用、の気はすでに書きました:http://blog.csdn.net/wenzhi20102321/article/details/70045048
本稿では、ローラ時間をカスタマイズするビューの設計について説明します.効果:実際には、上の時間と時間のダイアログボックスは同じカスタムビューで、ダイアログボックスにビューを入れます.同じようにダイアログボックスに表示できます.上記の日付のView:DataWheelViewと時間のView:TimeWheelViewは、方法が似ています.TimeWheelViewの使用を紹介します:時間の所在のActivityを見て使用します:
package com.example.wheel.activity;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

import com.example.wheel.R;
import com.example.wheel.loopview.DataWheelView;
import com.example.wheel.loopview.TimeWheelView;

/**
 *        
 */
public class TimeWheelViewActivity extends Activity {
    private TimeWheelView startLoopViewData;
    private TextView textView;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_time);
        initView();
        initData();
        initEvent();
    }

    private void initView() {
        startLoopViewData = (TimeWheelView) findViewById(R.id.startLoopViewData);
        textView = (TextView) findViewById(R.id.textView);

    }

    private void initData() {
        startLoopViewData.setTitleName("    ");
        startLoopViewData.setTitleColor(0xff00ff00);//       ,    
      startLoopViewData.setTitleBackground(0xff0000ff);//         ,    
//        startLoopViewData.setNotLoop();   //            ,      

    }

    private void initEvent() {
        //         
        startLoopViewData.setListenerOKClick(new TimeWheelView.OnListenerOKClick() {
            @Override
            public void selectData(String dataString) {
                textView.append(dataString + "
"
); } }); } }

簡単ではないでしょうか.操作はすべてTimeWheelViewクラスにカプセル化されているので、確定ボタンを傍受するだけで、戻ってきたデータを取得することができます.同様に、日付のActivityも同様に簡単です.
時間ダイアログのコードを見てみましょう.

    /**
     *          
     *
     * @param view
     */
    public void selectTimeDialog(View view) {
        View timeView=View.inflate(this, R.layout.activity_time, null);
        TimeWheelView loopViewData=(TimeWheelView) timeView.findViewById(R.id.startLoopViewData);
        loopViewData.setTitleName("    ");
        loopViewData.setTitleColor(0xff00ff00);
        loopViewData.setTitleBackground(0xff0000ff);
        //        
        final AlertDialog dialog = new AlertDialog.Builder(this).
                setView(timeView).
                create();
        dialog.show();

        //            
        loopViewData.setListenerOKClick(new TimeWheelView.OnListenerOKClick() {

            @Override
            public void selectData(String dataString) {
                dialog.cancel();
                  Toast.makeText(MyActivity.this, "       :"+dataString, Toast.LENGTH_SHORT)
                .show();     

            }
        });

    }

このローラー効果のViewは、ここまで紹介されていますが、必要なのは自分で中のパッケージコードを見ることも、修正することもできます.
上のダイナミック効果が見えるタイムセレクタには小さなdebugがあり、分と秒が0から始まっていないため、修正されています.
ソースアドレス:https://github.com/liwenzhi/Data_Time_wheelView
共に努力します:すべての人はすべて唯一無二でこの世界に来て、その唯一無二のすばらしさを享受すべきです.他の人がどんなにお金があってもあなたになれないと信じてください.あなたのためです...唯一無二で、この世界ではこれしかありません.