android基础之常用控件复习

作为一个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;
        }


    }





}




  



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值