Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android 用戶表單融合各類簡易控件以及融入FloatingActionButton以及butterknife(一)

Android 用戶表單融合各類簡易控件以及融入FloatingActionButton以及butterknife(一)

編輯:關於Android編程

轉載請注明出處王亟亟的大牛之路

空了2個禮拜,終於開始有事做了,用了午休時間和下午的大概1個小時,完成了這個例子,讓小伙伴們,對一些常用的表單所需的控件,做一個溫故,再配合炫酷的FloatingActionButton以及好用butterknife,可以有效的提高我們的效率。
本文為2部分,還有部分圖片上傳啊一些功能明天再做了,今天 有點來不及了。
包結構:
這裡寫圖片描述
項目是Android Studio的所以貼下Gradle配置:<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxwcmUgY2xhc3M9"brush:java;"> apply plugin: 'com.android.application' android { compileSdkVersion 22 buildToolsVersion 22.0.1 defaultConfig { applicationId test.wjj.com.formdemo minSdkVersion 14 targetSdkVersion 22 versionCode 1 versionName 1.0 } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:22.2.1' compile 'com.android.support:cardview-v7:22.2.1' compile 'de.hdodenhof:circleimageview:1.3.0' compile 'com.android.support:design:22.2.1' compile 'com.jakewharton:butterknife:6.1.0' compile 'com.nineoldandroids:library:2.4.0+' }

運行之後的樣子
這裡寫圖片描述
點擊提交之後的效果
這裡寫圖片描述
全程都是Toast來呈現一些數據,懶的寫一些Dialog了,內容對就行。

MainActivity

public class MainActivity extends AppCompatActivity {
    @InjectView(R.id.nameeditText)EditText nameeditText;
    @InjectView(R.id.passwordeditText)EditText passwordeditText;
    @InjectView(R.id.sexswitch)Switch sexswitch;
    @InjectView(R.id.schoolspinner)Spinner schoolspinner;
    @InjectView(R.id.seekBar)SeekBar seekBar;
    @InjectView(R.id.imagebutton)Button imagebutton;
    @InjectView(R.id.photoview)ImageView photoview;
    @InjectView(R.id.fab) FloatingActionButton fab;
    @InjectView(R.id.overlay) View overlay;
    @InjectView(R.id.sheet) View sheet;
    //性別
    String sex=;
    //學校
    String Schoole=;
    //SeekBar值
    int SeekBarValue=0;
    //spinner的適配器
    private ArrayAdapter adapter;
    private List list = new ArrayList();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.inject(this);
        init();
    }

    @OnClick(R.id.fab)
    void onClickFab() {
        if (fab.getVisibility() == View.VISIBLE) {
            FabTransformation.with(fab).setOverlay(overlay).transformTo(sheet);
        }
    }

    @OnClick({R.id.row_1,R.id.row_2})
    void onClickRow1(View view) {
        if(view.getId()==R.id.row_1){
            Toast.makeText(MainActivity.this,提交,Toast.LENGTH_SHORT).show();
            process();
        }else if(view.getId()==R.id.row_2){
            Toast.makeText(MainActivity.this,取消,Toast.LENGTH_SHORT).show();
        }
        if (fab.getVisibility() != View.VISIBLE) {
            FabTransformation.with(fab).setOverlay(overlay).transformFrom(sheet);
        }
    }

    @OnCheckedChanged(R.id.sexswitch)
    void onsexSwitch(boolean isChecked){
        if(isChecked){
            sex=女;
        }else{
            sex=男;
        }
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        return super.onOptionsItemSelected(item);
    }

    @Override
    public void onBackPressed() {
        if (fab.getVisibility() != View.VISIBLE) {
            FabTransformation.with(fab).setOverlay(overlay).transformFrom(sheet);
            return;
        }
        super.onBackPressed();
    }

    private  void init(){
        //第一步:添加一個下拉列表項的list,這裡添加的項就是下拉列表的菜單項
        list.add(上海大學);
        list.add(華東理工大學);
        list.add(廈門大學);
        list.add(北京大學);

        //第二步:為下拉列表定義一個適配器,這裡就用到裡前面定義的list。
        adapter = new ArrayAdapter(this,android.R.layout.simple_spinner_item, list);
        //第三步:為適配器設置下拉列表下拉時的菜單樣式。
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        schoolspinner.setAdapter(adapter);
        //第五步:為下拉列表設置各種事件的響應,這個事響應菜單被選中
        schoolspinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener() {
            public void onItemSelected(AdapterView arg0, View arg1, int arg2, long arg3) {
                Schoole = adapter.getItem(arg2);
                /* 將mySpinner 顯示*/
                arg0.setVisibility(View.VISIBLE);
            }

            public void onNothingSelected(AdapterView arg0) {
                arg0.setVisibility(View.VISIBLE);
            }
        });
        /*下拉菜單彈出的內容選項觸屏事件處理*/
        schoolspinner.setOnTouchListener(new Spinner.OnTouchListener() {
            public boolean onTouch(View v, MotionEvent event) {
                return false;
            }
        });
        /*下拉菜單彈出的內容選項焦點改變事件處理*/
        schoolspinner.setOnFocusChangeListener(new Spinner.OnFocusChangeListener() {
            public void onFocusChange(View v, boolean hasFocus) {
                // TODO Auto-generated method stub

            }
        });
        seekBar.setProgress(0);
        seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {

            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {

            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
                SeekBarValue=seekBar.getProgress();
            }
        });
    }

    private void process(){

        if(nameeditText.getText().toString().length()<=0||nameeditText.getText().toString().equals()){
            Toast.makeText(MainActivity.this,姓名不能為空,Toast.LENGTH_SHORT).show();
        }else if(passwordeditText.getText().toString().length()<=0||passwordeditText.getText().toString().equals()){
            Toast.makeText(MainActivity.this,密碼不能為空,Toast.LENGTH_SHORT).show();
        }else if(sex==null){
            Toast.makeText(MainActivity.this,性別沒有選,Toast.LENGTH_SHORT).show();
        }else if(Schoole.length()<=0||Schoole.equals()){
            Toast.makeText(MainActivity.this,學校沒有選,Toast.LENGTH_SHORT).show();
        }else if(SeekBarValue==0){
            Toast.makeText(MainActivity.this,請拖動進度條,Toast.LENGTH_SHORT).show();
        }else{
            Toast.makeText(MainActivity.this,名字叫:+nameeditText.getText().toString()+  +密碼是:+passwordeditText.getText()+  +
                    性別是:+sex+  +學校是:+Schoole+ +滿意度是:+SeekBarValue,Toast.LENGTH_LONG).show();
        }
    }
}

分析:

Switch調用OnCheckedChanged監聽事件來判斷男女,false為男(默認),True=女。
Spinner用ArrayAdapter來填充了一些字符串數據到了適配器中呈現出來,然後用setOnItemSelectedListener來監聽用戶的選擇,並獲取值。
seekBar調用setOnSeekBarChangeListener來監聽進度,默認值設為0,在onStopTrackingTouch方法獲取最終的值。
還有一些就是FabTransformation的一些操作了可以看http://blog.csdn.net/ddwhan0123/article/details/47317775這篇文章來進一步的了解。

布局文件(這個整的蛋疼,表單就是這麼長)




    

        

            
            
            

                

                
            


            

            
            

                

                
            

            

        
        

            

            
        
            
            
            

                

                


            
            
            
            

                

                
            
            
            
            


                

Styles.xml:



    

 
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved