<Buttonandroid:id="@+id/editinfo_btn_save"android:layout_width="wrap_content"android:layout_height="wrap_content" android:text="保存" />这里给它的文本内容设置为"保存",那么一个app中所有的保存按钮都这样写。当有一天要修改需求了,要求把“保存”文字改成“提交”,那么我们只能去一个个布局文件中修改,
<Buttonandroid:id="@+id/editinfo_btn_save"android:layout_width="wrap_content"android:layout_height="wrap_content" android:text="@string/save" />而在string.xml文件中:
<string name="save">保存</string>
private Button scan;//扫描按钮 private Button create;//创建按钮 private ArrayList<Object> datas; //数据源 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); create = (Button) findViewById(R.id.create); scan = (Button) findViewById(R.id.scan); scan.setOnClickListener(this); create.setOnClickListener(this); datas = new ArrayList<>(); datas.add(new Integer(1)); datas.add(new Integer(2)); datas.add(new Integer(3)); datas.add(new Integer(4)); }什么都不管,所有的操作代码都写在onCreate()方法中,包括find控件。设置监听事件,加载数据源等等。
public class MainActivity extends AppCompatActivity implements View.OnClickListener { private Button btn_scan;//扫描按钮 private Button btn_create;//创建按钮 private ArrayList<Object> datas; //数据源 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initVariables(); initView(); initEvent(); loadData(); } //初始化变量,比如 上一个Activity传来的Intent的数据 本Activity中一些标记变量等 private void initVariables() { } //加载数据源 private void loadData() { } //注册监听事件 private void initEvent() { btn_scan.setOnClickListener(this); btn_create.setOnClickListener(this); } //初始化控件 private void initView() { btn_create = (Button) findViewById(R.id.create); btn_scan = (Button) findViewById(R.id.scan); } //设置点击事件 @Override public void onClick(View v) { switch (v.getId()){case R.id.btn_scan://扫描二维码startActivity(new Intent(this,ScanActivity.class));break;case R.id.btn_create://生成二维码startActivity(new Intent(this,CreateActivity.class));break; } }}可以看到,onCreate()中就那么几个方法了,我们需要找问题的时候在相应的方法中去找即可,既方便又清晰。
btn_create.setOnClickListener(this);
btn_create.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) { } });其他三个方法个人觉得尽量不要用。而这两种方法中第一种 是更好的,因为我们可以通过switch--case 的方法区分不同控件的点击事件,代码更清晰简约。
//设置点击事件 @Override public void onClick(View v) { switch (v.getId()){case R.id.scan://扫描二维码startActivity(new Intent(this,ScanActivity.class));break;case R.id.create://生成二维码startActivity(new Intent(this,CreateActivity.class));break; } }5、尽量少用全局变量static进行传值操作
for (int i = 0; i < 10; i++) {} for (int i = 0; i < 10; i++){}10、不同功能代码之间要有一行空格分开
2、xml文件
①、layout.xml
Activity的布局文件以activity_ 开头,AS提供的。
列表项的布局文件listview 以 item_list_开头。
②、控件的命名
缩写,这个看个人了,
我的经验,比如:
LayoutView ---- lv
TextView ---- tv
Button ---- btn
ImageView ---- img
切记,不要使用拼音命名,即使英文这么菜的博主我开发都开着有道词典。
最后,编码一定要写注释,你命名的如果英文不是立马能看懂的,请一定要写上注释。