布局
<LinearLayout
android:layout_width="395dp"//宽度
android:layout_height="717dp"//高度
android:layout_marginTop="8dp"//当前图层与外部图层的距离
android:orientation="vertical"//垂直布局//horzontal水平布局
tools:layout_editor_absoluteX="8dp"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
>
在android中可以直接拖控件,很直观,简单,但是仔细的设置,还是用代码吧
控件
文本视图TextView
最基础的文本显示控件。可以做成滚动效果
按钮Button
Button派生自TextView(这个真没想到),但书上说二者在UI上的区别主要是Button有个按钮外观。
图像视图ImageView
可以设置各种属性,形状,可以设置成为按钮。
绘制图形Drawable没仔细看,用到再说
+/-
练习用,功能简单,点击按钮数字会产生变化
1 package com.example.myapplication; 2 3 import android.support.v7.app.AppCompatActivity; 4 import android.os.Bundle; 5 import android.util.Log; 6 import android.view.View; 7 import android.widget.Button; 8 import android.widget.TextView; 9 10 public class MainActivity extends AppCompatActivity implements View.OnClickListener 11 { 12 public static final String TAG="MainActivity"; 13 @Override 14 protected void onCreate(Bundle savedInstanceState) { 15 super.onCreate(savedInstanceState); 16 setContentView(R.layout.activity_main); 17 TextView number=findViewById(R.id.number); 18 number.setText("0"); 19 findViewById(R.id.button_1).setOnClickListener(this); 20 findViewById(R.id.button_10).setOnClickListener(this); 21 findViewById(R.id.button_f1).setOnClickListener(this); 22 findViewById(R.id.button_f10).setOnClickListener(this); 23 findViewById(R.id.button_clear).setOnClickListener(this); 24 } 25 26 @Override 27 public void onClick(View v) 28 { 29 int i=0; 30 String num="0"; 31 if(v.getId()==R.id.button_1) 32 { 33 TextView number=findViewById(R.id.number); 34 num=number.getText().toString(); 35 i=Integer.valueOf(num); 36 i=i+1; 37 number.setText(String.valueOf(i)); 38 } 39 if(v.getId()==R.id.button_10) 40 { 41 TextView number=findViewById(R.id.number); 42 num=number.getText().toString(); 43 i=Integer.valueOf(num); 44 i=i+10; 45 number.setText(String.valueOf(i)); 46 } 47 if(v.getId()==R.id.button_f1) 48 { 49 TextView number=findViewById(R.id.number); 50 num=number.getText().toString(); 51 i=Integer.valueOf(num); 52 i=i-1; 53 number.setText(String.valueOf(i)); 54 } 55 if(v.getId()==R.id.button_f10) 56 { 57 TextView number=findViewById(R.id.number); 58 num=number.getText().toString(); 59 i=Integer.valueOf(num); 60 i=i-10; 61 number.setText(String.valueOf(i)); 62 } 63 if(v.getId()==R.id.button_clear) 64 { 65 TextView number=findViewById(R.id.number); 66 number.setText("0"); 67 } 68 Log.d(TAG,num+"shuzi"+i); 69 } 70 }
总结
1.Integer.valueOf和Integer.toString的区别
参考:https://blog.csdn.net/nosxcy/article/details/6989633
2.findViewById(R.id.number);的返回值是CharSequence
关于CharSequence,参考:https://www.cnblogs.com/skywang12345/p/string01.html
3.Log.d(TAG,message);用来输入信息很方便,
TAG要在开头标注,不是现成的
public static final String TAG="MainActivity";
4.按钮点击事件,类加上接口
implements View.OnClickListener
必须写出方法
public void onClick(View v)
长按事件:接口
OnLongClickListener
———— END ————