您的位置:首页 > 移动开发 > Android开发

android基础之常用控件复习

2017-11-01 21:29 531 查看
作为一个android专业出身的我竟然快不会写android代码了(吐槽自己的废话)接下来这篇文章将对android基础常用的几个控件进行下复习。在这布局方面的知识简单掠过。。。布局;网格布局、帧布局、表格布局、绝对布局、线性布局(LinearLayout): 通过权重灵活分配空间,垂直,水平,可嵌套 [b](layout_gravity、gravity、 orientation、weight)特别注意layout_gravity和gravity的区别。[/b]
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)布局文件中声明一个按钮
   <Buttonandroid: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接口 、匿名内部类、设置点击事件@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//2.绑定IDmyButton = (Button) findViewById(R.id.myButton);//3.设置点击事件myButton.setOnClickListener(new OnClickListener() {@Overridepublic 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接口 、匿名内部类、设置点击事件@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//2.绑定IDmyButton = (Button) findViewById(R.id.myButton);myButton.setOnClickListener(this);}// 必须实现OnClickListener接口public void onClick(View view) {switch (view.getId()) {//  button的idcase R.id.myButton://Intent意图 跳转到下一个ActivityIntent 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      第三种:       布局文件中设置点击事件        
<Buttonandroid: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 也不用绑定idToast.makeText(MainActivity.this, "-->>3", Toast.LENGTH_LONG).show();}}
              还有一种ImageButton,和Buttonb不同的是imageButton没有text属性,  但是他继承于ImageView,有android:src="@drawable/xxx"属性。  Button 继承 Textview。
<ImageButtonandroid: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"><EditTextandroid: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="请输入用户名字:" /><EditTextandroid: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" /><EditTextandroid: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>
    <ImageViewandroid: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;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_edit_text01);//绑定IDbtn = (Button) findViewById(R.id.button1);et1 = (EditText) findViewById(R.id.editText2);//看效果btn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {String value = et1.getText().toString();if (value.equals("") || value == null) {et1.setError("请输入用户名字:");}}});//EditText的点击事件et1.setOnKeyListener(new OnKeyListener() {@Overridepublic boolean onKey(View v, int keyCode, KeyEvent event) {if (keyCode == KeyEvent.KEYCODE_ENTER) {Toast.makeText(EditText01.this, "按下回车键", Toast.LENGTH_LONG).show();}return false;}});}}
[b]@3各种Bar[/b]
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><ProgressBarandroid: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" /><SeekBarandroid: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" /><Buttonandroid:id="@+id/button1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:layout_below="@id/ratingBar1"android:text="点击开始" /><ProgressBarandroid: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" /><ProgressBarandroid:id="@+id/progressBar2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignLeft="@id/progressBar1"android:layout_alignTop="@id/progressBar3" /><RatingBarandroid: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的子类@Overrideprotected 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() {@Overridepublic void onClick(View v) {new MyTask().execute();}});sb.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {@Overridepublic void onStopTrackingTouch(SeekBar seekBar) {}@Overridepublic void onStartTrackingTouch(SeekBar seekBar) {// TODO Auto-generated method stub}@Overridepublic void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {System.out.println("-->>" + progress);}});rb.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {@Overridepublic void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {System.out.println("-->>" + rating);}});}class MyTask extends AsyncTask<Void, Integer, Void> {@Overrideprotected void onProgressUpdate(Integer... values) {super.onProgressUpdate(values);pb.setProgress(values[0]);}@Overrideprotected 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;}}}
  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息