- 编码规范与规定
1.1 关键词:如int
1.1.1 关键词大小写敏感,随意改变后,编译器无法识别。
1.1.2 关键词不能作为变量名
1.2 变量
1.2.1 变量命名:
1.2.1.1 规范:小驼峰(首字母小写,其他单词首字母大写)
1.2.1.2 首字母必须是字母或_或$
1.2.1.3 不能有空格
1.2.2 作用域
1.2.2.1 变量只能在它所在的作用域内被赋值和调用
1.2.2.2 变量
1.3 字符串合法性:
1.3.1 必须有前双引号和后双引号
1.3.2 转义字符需转义
1.3.3 连接用“+”号 - 篮球比赛计分APP
2.1 布局
2.1.1 需要的控件:Button、LinearLayout、View、TextView、RelativeLayout
2.1.2 布局文件:activity_main.xml、fragement_team.xml
2.1.2.1 activity_main.xml结构:
2.1.2.2 fragment_team.xml结构:
2.1.3 drawable文件:click.xml
2.1.4 主颜色:# f1942f
2.1.5 JAVA文件:MainActivity.java、TeamFragment.java
2.1.6 Show
3 代码展示
3.1 JAVA代码:
3.1.1 MainActivity.java
package wang.relish.courtcounter;
import android.os.Bundle;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
OnResetListener listenerA, listenerB;
Button btnReset;
TeamFragment teamA, teamB;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initViews();
}
private void initViews() {
btnReset = (Button) findViewById(R.id.btnReset);
if (btnReset != null)
btnReset.setOnClickListener(this);
teamA = (TeamFragment) getSupportFragmentManager().findFragmentById(R.id.fgmTeamA);//TeamFragment.newInstance("teamA");
teamB = (TeamFragment) getSupportFragmentManager().findFragmentById(R.id.fgmTeamB);//TeamFragment.newInstance("teamB");
teamA.setTeamName("TeamA");
teamB.setTeamName("TeamB");
listenerA = teamA;
listenerB = teamB;
}
@Override
public void onClick(View v) {
listenerA.reset();
listenerB.reset();
}
interface OnResetListener {
void reset();
}
}
3.1.2 TeamFragment.java
package wang.relish.courtcounter;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
/**
* Created by Relish on 2016/4/20.
*/
public class TeamFragment extends Fragment implements View.OnClickListener, MainActivity.OnResetListener {
TextView tvTeamName;
TextView tvPoint;
Button btnAdd3;
Button btnAdd2;
Button btnAdd1;
public static TeamFragment newInstance(String teamName) {
TeamFragment team = new TeamFragment();
Bundle args = new Bundle();
args.putString("teamName", teamName);
team.setArguments(args);
return team;
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_team, container, false);
initViews(v);
return v;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
private void initViews(View v) {
tvTeamName = (TextView) v.findViewById(R.id.tvTeamName);
tvPoint = (TextView) v.findViewById(R.id.tvPoint);
btnAdd3 = (Button) v.findViewById(R.id.btnAdd3);
btnAdd2 = (Button) v.findViewById(R.id.btnAdd2);
btnAdd1 = (Button) v.findViewById(R.id.btnAdd1);
btnAdd3.setOnClickListener(this);
btnAdd2.setOnClickListener(this);
btnAdd1.setOnClickListener(this);
}
public void reset2(){
tvPoint.setText("0");
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btnAdd3:
showPoint(3);
break;
case R.id.btnAdd2:
showPoint(2);
break;
case R.id.btnAdd1:
showPoint(1);
break;
}
}
private void showPoint(int num) {
tvPoint.setText(String.valueOf(
Integer.parseInt(tvPoint.getText().toString())
+ num));
}
public void setTeamName(String teamName) {
tvTeamName.setText(teamName);
}
@Override
public void reset() {
tvPoint.setText("0");
}
}
3.2 XML代码:
3.2.1 布局代码:
3.2.1.1 activity _main.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="wang.relish.courtcounter.MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:orientation="horizontal">
<fragment
android:id="@+id/fgmTeamA"
android:name="wang.relish.courtcounter.TeamFragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
tools:layout="@layout/fragment_team" />
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="#000" />
<fragment
android:id="@+id/fgmTeamB"
android:name="wang.relish.courtcounter.TeamFragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
tools:layout="@layout/fragment_team" />
</LinearLayout>
<Button
android:id="@+id/btnReset"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_margin="16dp"
android:background="@drawable/click"
android:text="reset"
android:textColor="#fff"
android:textSize="24sp" />
</RelativeLayout>
3.2.1.2 fragment_team.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/tvTeamName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:gravity="center"
android:text="TeamA"
android:textSize="24sp" />
<TextView
android:id="@+id/tvPoint"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="0"
android:textSize="56sp" />
<Button
android:id="@+id/btnAdd3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginTop="16dp"
android:background="@drawable/click"
android:gravity="center"
android:text="+3 Points"
android:textColor="#fff" />
<Button
android:id="@+id/btnAdd2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginTop="16dp"
android:background="@drawable/click"
android:gravity="center"
android:text="+2 Points"
android:textColor="#fff" />
<Button
android:id="@+id/btnAdd1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginTop="16dp"
android:background="@drawable/click"
android:gravity="center"
android:text="FREE THROW"
android:textColor="#fff" />
</LinearLayout>
3.2.2 drawable代码:
3.2.2.1 click.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<color android:color="@color/colorPrimaryDark" />
</item>
<item>
<color android:color="@color/colorAccent" />
</item>
</selector>
3.2.3 colors.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#F1942F</color>
<color name="colorPrimaryDark">#99F1942F</color>
<color name="colorAccent">#F1942F</color>
</resources>