zoukankan      html  css  js  c++  java
  • Android开发笔记3之控件

    一:编辑框

    在res文件夹下的layout的文件夹的xml文件

    image image 这样在xml中我们就声明了两个控件,一个EditText和一个TextView

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context=".MainActivity" >
    
        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/hello_world" />
    
        <EditText
            android:id="@+id/editText1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_below="@+id/textView1"
            android:layout_marginTop="24dp"
            android:ems="10" >
    
            <requestFocus />
        </EditText>
    
    </RelativeLayout>

    并且我们将为EditText控件添加事件监听setOnKeyListener,并实现了onKey方法--在这个项目中也就是用户在按键是变回触发这个事件,从而可以通过getText()方法来获取用户输入的内容,当然,用户在没有输入的默认情况下,编辑框EditText默认显示“输入账号”,实现这个功能的方法为Edit.SetHint(“请输入账号!”)或者在xml布局上写上“android:hit=”请输入账号!””,

    代码为

    package com.example.test;
    
    import android.os.Bundle;
    import android.app.Activity;
    import android.view.KeyEvent;
    import android.view.Menu;
    import android.view.View;
    import android.widget.EditText;
    import android.widget.TextView;
    
    
    public class MainActivity extends Activity {
        private TextView m_texTextView;
        private EditText m_EditText;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            m_texTextView=(TextView)findViewById(R.id.textView1);
            m_EditText=(EditText)findViewById(R.id.editText1);
            m_EditText.setHint("请输入账号:");
            m_EditText.setOnKeyListener(new EditText.OnKeyListener(){
                @Override
                public boolean onKey(View arg0,int arg1,KeyEvent arg2){
                    m_texTextView.setText("文本框中的内容是:"+m_EditText.getText().toString());
                    return false;
                }
            });
        }
    
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.main, menu);
            return true;
        }
        
    }

    二:Spinner控件

    1.在Activity中自定数据的绑定方式

    private static final String[] m={"A型","B型","O型","AB型","其他"}; 
        private ArrayAdapter<String> adapter;

    在Oncrete方法中做各种实例化spinner

         setContentView(R.layout.activity_main);
            Spinner spinner = (Spinner) findViewById(R.id.planets_spinner);
            adapter=new ArrayAdapter<String>(this,  android.R.layout.simple_spinner_item, m);
            adapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);  
            spinner.setAdapter(adapter);  
            spinner.setOnItemSelectedListener(new SpinnerSelectedListener());
            spinner.setVisibility(View.VISIBLE);

    实现事件的注册

    class SpinnerSelectedListener  implements OnItemSelectedListener{
            
            @Override
            public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
                    long arg3) {
                // TODO Auto-generated method stub
                  Toast.makeText(MainActivity.this, "你的血型是:"+m[arg2], 1).show();
            }
            @Override
            public void onNothingSelected(AdapterView<?> arg0) {
                // TODO Auto-generated method stub
                
            }
        }

    2.在vlues文件夹中定义arrays.xml

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <string-array name="plantes">
            <item>NOKIA</item>
            <item>MOTO</item>
            <item>HTC</item>
            <item>LG</item>
            <item>其他</item>
        </string-array>
    </resources>
    private ArrayAdapter adapter2;
    rotected void onCreate(Bundle savedInstanceState) {
       adapter2 = ArrayAdapter.createFromResource(this, R.array.plantes, android.R.layout.simple_spinner_item);
            adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);  
            spinner1.setAdapter(adapter2);  
            spinner1.setOnItemSelectedListener(new SpinnerXMLSelectedListener());  
    }
    class SpinnerXMLSelectedListener  implements OnItemSelectedListener{
            
            @Override
            public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
                    long arg3) {
                // TODO Auto-generated method stub
                 Toast.makeText(MainActivity.this, "你使用什么样的手机:"+adapter2.getItem(arg2), 1).show();
            }
            @Override
            public void onNothingSelected(AdapterView<?> arg0) {
                // TODO Auto-generated method stub
                
            }
        }

    注意两种方法分别给adater绑定数据的不同,而且simper_spinner_dropdown_item系统默认的layout方式

    三:SeekBar

    SeekBar拖动条:听歌、看电影,快进或者退回某一时间或者调节音量大小

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
         android:orientation="vertical"  
         android:layout_width="match_parent"  
         android:layout_height="match_parent">  
           
         <SeekBar  
         android:id="@+id/seekbar"  
         android:layout_width="match_parent"  
         android:layout_height="wrap_content"  
         android:max="100"  
         android:progress="50"  
         android:secondaryProgress="75" />  
           
         <TextView   
         android:id="@+id/info01"   
         android:layout_width="match_parent"   
         android:layout_height="wrap_content" />  
           
         <TextView    
         android:id="@+id/info02"  
         android:layout_width="match_parent"   
         android:layout_height="wrap_content" />  
           
     </LinearLayout>
    //注意同时从MainActivity类自Activity继承与实现OnSeekBarChangeListener接口  
    public class MainActivity extends Activity implements OnSeekBarChangeListener  
    {  
        //声明变量  
        private SeekBar sbVolumer=null;  
        private TextView tvinfo01=null;  
        private TextView tvInfo02=null;  
        @Override  
        public void onCreate(Bundle savedInstanceState)  
        {  
            super.onCreate(savedInstanceState);  
            setContentView(R.layout.activity_main);  
            //获得控件  
            sbVolumer = (SeekBar) findViewById(R.id.seekbar);  
            sbVolumer.setOnSeekBarChangeListener(this);  
            tvinfo01 = (TextView) findViewById(R.id.info01);  
            tvInfo02 = (TextView) findViewById(R.id.info02);  
        }  
          
        //SeekBar数值改变事件  
        @Override  
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromTouch)  
        {  
            tvinfo01.setText("音量当前值:"+progress);  
        }  
          
        //SeekBar开始拖动事件  
        @Override  
        public void onStartTrackingTouch(SeekBar arg0)  
        {  
            tvInfo02.setText("音量正在调解");  
        }  
          
        //SeekBar停止拖动事件  
        @Override  
        public void onStopTrackingTouch(SeekBar arg0)  
        {  
            tvInfo02.setText("音量停止调解");  
        }  
    }

    注意同时从MainActivity类自Activity继承与实现OnSeekBarChangeListener接口

    四、RatingBar

    public class MainActivity extends Activity {
        private RatingBar rbSore=null;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            rbSore=(RatingBar)this.findViewById(R.id.ratingBar1);
            rbSore.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
                
                @Override
                public void onRatingChanged(RatingBar arg0, float arg1, boolean arg2) {
                    // TODO Auto-generated method stub
                     Toast.makeText(getApplication(), "rating:"+String.valueOf(arg1),Toast.LENGTH_SHORT).show(); 
                }
            });
        }
    
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.main, menu);
            return true;
        }
        
    }

    RatingBar是基于SeekBar和ProgressBar的扩展,用星型来显示等级评定

  • 相关阅读:
    一篇进入ABB机器人世界-以前学习视频的笔记
    说说常用算子select_shape的特性一些使用
    简单说说双目立体视觉的原理(后面有机会再讲讲应用)
    Halcon算子大全目录
    【转载】C# SQLite 数据库操作
    【重磅】机器视觉前沿的研究机构(国内篇)
    【重磅】机器视觉前沿的研究机构(国外篇)
    机器视觉相关中英文词汇
    Java中print、printf、println的区别
    iTerm2相关设置与美化
  • 原文地址:https://www.cnblogs.com/ilooking/p/4261986.html
Copyright © 2011-2022 走看看