android基础之常用控件复习

来源:互联网 发布:分数统计软件 编辑:程序博客网 时间:2024/06/07 21:39

作为一个android专业出身的我竟然快不会写android代码了(吐槽自己的废话)

接下来这篇文章将对android基础常用的几个控件进行下复习。


在这布局方面的知识简单掠过。。。

布局;网格布局、帧布局、表格布局、绝对布局、
线性布局(LinearLayout): 通过权重灵活分配空间,垂直,水平,可嵌套 (layout_gravity、gravity、 orientation、weight)特别注意layout_gravity和gravity的区别。
android:orientation="horizontal"
android:layout_weight="1"
           
相对布局(Relativelayout): 本身位于谁的那边  a位于b的右边 相对于b来说,a位于b的右边(找参照物)


android:layout_toRightOf=""
android:layout_toRightOf=""
边缘对齐:alignParentxxx
     
帧布局:放入其中的所有元素都被放置在最左上的区域,而且无法为这些元素指定一个确切的位置,下一个子元素会重叠覆盖上一个子元素.
配合Fragment使用。
注意:

控件

@1Button 

先来回顾下写控件的步骤:

1).布局文件中创建一个Button控件;

2).声明控件;

3).绑定Id.

4).设置点击事件.

 1、button的三种点击事件:

     第一种:

     匿名方式设置按钮点击事件。

      (1)布局文件中声明一个按钮

   <Button        android:id="@+id/myButton"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:padding="10dp"        android:text="登录"        />

                             (2) 见代码:

                        

package com.xiaoning.demo;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.ImageButton;import android.widget.Toast;import com.example.administrator.demoapplication.R;public class MainActivity extends Activity {    //1.声明按钮控件    private Button myButton;    // 实现OnClickListener接口 、匿名内部类、设置点击事件    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //2.绑定ID        myButton = (Button) findViewById(R.id.myButton);        //3.设置点击事件        myButton.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View view) {                //弹出吐司                Toast.makeText(MainActivity.this, "我点击了按钮", Toast.LENGTH_LONG).show();            }        });    }}

    

   

 

  第二种:   

      实现OnClickListener接口
   
package com.xiaoning.demo;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.ImageButton;import android.widget.Toast;import com.example.administrator.demoapplication.R;public class MainActivity extends Activity implements OnClickListener {    //1.声明按钮控件    private Button myButton;    // 实现OnClickListener接口 、匿名内部类、设置点击事件    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //2.绑定ID        myButton = (Button) findViewById(R.id.myButton);        myButton.setOnClickListener(this);    }    // 必须实现OnClickListener接口    public void onClick(View view) {        switch (view.getId()) {              //  button的id            case R.id.myButton:                   //Intent意图 跳转到下一个Activity                Intent intent = new Intent(MainActivity.this, ThirdActivity.class);                MainActivity.this.startActivity(intent);                break;            case R.id.button1:                Toast.makeText(MainActivity.this, "-->>1", Toast.LENGTH_LONG).show();                break;        }    }}

提前创建好Activity




      第三种:

       布局文件中设置点击事件

        

<Button    android:id="@+id/myButton"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:padding="10dp"    android:text="登录"     android:onClick="SendMessage"    />

         

public class MainActivity extends AppCompatActivity {    //1.声明按钮控件    private Button myButton, Button1, Button2;    // 响应按钮事件    public void SendMessage(View view) { // 在layout中注册 不用实现onClickListener 也不用绑定id        Toast.makeText(MainActivity.this, "-->>3", Toast.LENGTH_LONG).show();    }}

            


  还有一种ImageButton,和Buttonb不同的是imageButton没有text属性,  但是他继承于ImageView,有android:src="@drawable/xxx" 属性。  Button 继承 Textview。

<ImageButton    android:id="@+id/myButton"    android:layout_width="50dp"    android:layout_height="wrap_content"    android:padding="10dp"    android:text="登录"    android:src="@mipmap/ic_launcher"    android:onClick="SendMessage"    />


  


@2EditText  TextView  ImageView

   上布局文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent">    <EditText        android:id="@+id/editText2"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentLeft="true"        android:layout_alignParentRight="true"        android:layout_alignParentTop="true"        android:hint="请输入用户名字:" />    <EditText        android:id="@+id/editText1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignLeft="@id/editText2"        android:layout_alignRight="@id/editText2"        android:layout_below="@id/editText2"        android:inputType="textPassword" />    <EditText        android:id="@+id/editText3"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignLeft="@+d/editText1"        android:layout_alignRight="@id/editText1"        android:layout_below="@+id/editText1"        android:inputType="phone">        <requestFocus />    </EditText>   
    <ImageView    android:id="@+id/button1"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:layout_alignParentBottom="true"    android:layout_centerHorizontal="true"    android:src="@mipmap/ic_launcher"     />
<TextView android:id="@+id/text_edit" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@id/button1" android:layout_centerHorizontal="true" android:text="请输入姓名:" android:textColor="@color/colorPrimary" android:textSize="20dp" /></RelativeLayout>

package com.xiaoning.demo;import android.app.Activity;import android.os.Bundle;import android.view.KeyEvent;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.view.View.OnKeyListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;import com.example.administrator.demoapplication.R;public class EditText01 extends Activity {    Button btn;    EditText et1;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_edit_text01);        //绑定ID        btn = (Button) findViewById(R.id.button1);        et1 = (EditText) findViewById(R.id.editText2);                //看效果        btn.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                String value = et1.getText().toString();                if (value.equals("") || value == null) {                    et1.setError("请输入用户名字:");                }            }        });           //EditText的点击事件        et1.setOnKeyListener(new OnKeyListener() {            @Override            public boolean onKey(View v, int keyCode, KeyEvent event) {                if (keyCode == KeyEvent.KEYCODE_ENTER) {                    Toast.makeText(EditText01.this, "按下回车键", Toast.LENGTH_LONG).show();                }                return false;            }        });    }}




@3各种Bar

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent" >    <ProgressBar        android:id="@+id/progressBar1"        style="?android:attr/progressBarStyleHorizontal"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentLeft="true"        android:layout_alignParentRight="true"        android:layout_alignParentTop="true" />    <SeekBar               android:id="@+id/seekBar1"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_alignLeft="@id/progressBar2"        android:layout_below="@id/progressBar2"        android:layout_marginTop="103dp" />    <Button        android:id="@+id/button1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentLeft="true"        android:layout_below="@id/ratingBar1"        android:text="点击开始" />    <ProgressBar        android:id="@+id/progressBar3"        style="?android:attr/progressBarStyleLarge"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_below="@id/progressBar1"        android:layout_marginLeft="119dp"        android:layout_marginTop="22dp"             android:layout_toRightOf="@id/ratingBar1" />    <ProgressBar                   android:id="@+id/progressBar2"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignLeft="@id/progressBar1"        android:layout_alignTop="@id/progressBar3" />    <RatingBar        android:id="@+id/ratingBar1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_below="@id/seekBar1"        android:layout_centerHorizontal="true" /></RelativeLayout>

代码就不详细说了。。

package com.xiaoning.demo;import android.app.Activity;import android.os.AsyncTask;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.Button;import android.widget.ProgressBar;import android.widget.RatingBar;import android.widget.SeekBar;import com.example.administrator.demoapplication.R;public class Progressbar extends Activity {    ProgressBar pb = null;    SeekBar sb = null;    RatingBar rb = null;    Button b = null;    ////SeekBar和RatingBar都是ProgressBar的子类    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_progressbar);        pb = (ProgressBar) findViewById(R.id.progressBar1);        sb = (SeekBar) findViewById(R.id.seekBar1);        rb = (RatingBar) findViewById(R.id.ratingBar1);        b = (Button) findViewById(R.id.button1);        pb.setMax(100);        sb.setMax(100);        b.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                new MyTask().execute();            }        });        sb.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {            @Override            public void onStopTrackingTouch(SeekBar seekBar) {            }            @Override            public void onStartTrackingTouch(SeekBar seekBar) {                // TODO Auto-generated method stub            }            @Override            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {                System.out.println("-->>" + progress);            }        });        rb.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {            @Override            public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {                System.out.println("-->>" + rating);            }        });    }    class MyTask extends AsyncTask<Void, Integer, Void> {        @Override        protected void onProgressUpdate(Integer... values) {            super.onProgressUpdate(values);            pb.setProgress(values[0]);        }        @Override        protected Void doInBackground(Void... params) {            int i = 1;            while (i <= 100) {                try {                    Thread.sleep(500);                } catch (Exception e) {                    // TODO: handle exception                }                publishProgress(i);                i++;            }            return null;        }    }}




  



原创粉丝点击