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的扩展,用星型来显示等级评定

你可能感兴趣的:(Android开发)