4.6作业
- 布局很简单这里我就不详细的说明了,直接给出布局代码。
第一个登录界面的布局代码,将主要代码显示在以下
<LinearLayout
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<EditText
android:id="@+id/et_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="@string/et_name"
android:textSize="25sp"
android:ems="10"
/>
<View
android:layout_width="wrap_content"
android:layout_height="1dp"
android:background="#ffffff"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<Button
android:id="@+id/btn_cal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/btn_cal"
android:onClick="onClick"
android:textSize="30dp"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="2"
android:id="@+id/btn_exit"
android:text="@string/btn_quit"
android:onClick="onClick"
android:textSize="30dp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:id="@+id/tv_result"
android:text="@string/tv_result"
android:textSize="30sp"/>
</LinearLayout>
</LinearLayout>
第二个跳转界面的布局代码,将主要代码显示在以下
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:id="@+id/tv_question"
android:textSize="18sp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<Button
android:id="@+id/btn_yes"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/btn_yes"
android:textSize="30dp"
android:onClick="onClick"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:id="@+id/btn_no"
android:text="@string/btn_no"
android:textSize="30dp"
android:onClick="onClick"
/>
</LinearLayout>
</LinearLayout>
以下是string的resource
<resources>
<string name="app_name">Activity</string>
<string name="et_name">请输入姓名...</string>
<string name="btn_cal">开始评估</string>
<string name="btn_quit">退出</string>
<string name="tv_result">评估结果</string>
<string name="btn_yes">是</string>
<string name="btn_no">不是</string>
</resources>
- 最主要的是java代码啦~!
需要注意的是,因为这里涉及到了两个页面的跳转,所以要在manifests里注册!
第一个界面的java代码,将主要代码显示在以下
public class MainActivity extends AppCompatActivity {
private EditText etname;
private Button btncal,btnexit;
private TextView tvresult;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
etname=(EditText)findViewById(R.id.et_name);
btncal=(Button)findViewById(R.id.btn_cal);
btnexit=(Button)findViewById(R.id.btn_exit);
String data="";
Intent intent=getIntent();
String jg=intent.getStringExtra("result");
TextView tvresult=(TextView)findViewById(R.id.tv_result);
data = jg;
tvresult.setText(data);
}
public void onClick (View view){
switch (view.getId()){
case R.id.btn_cal:
question();
break;
case R.id.btn_exit:
finish();
break;
}
}
private void question() {
Intent intent=new Intent();
intent.setClass(MainActivity.this,QuestionActivity.class);
String text =etname.getText().toString();
intent.putExtra("name",text+"同学:是不是最喜欢安卓课的查老师?");
startActivity(intent);
}
}
第二个跳转界面的java代码,将主要代码显示在以下
public class QuestionActivity extends AppCompatActivity {
private Button yes;
private Button no;
private TextView question;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_question);
yes = (Button) findViewById(R.id.btn_yes);
no = (Button) findViewById(R.id.btn_no);
String data="";
Intent intent=getIntent();
String jg=intent.getStringExtra("name");
TextView question=(TextView)findViewById(R.id.tv_question);
data = jg;
question.setText(data);
}
public void onClick(View view) {
switch (view.getId()) {
case R.id.btn_yes:
main1();
break;
case R.id.btn_no:
main2();
break;
}
}
private void main2() {
Intent intent=new Intent();
intent.setClass(QuestionActivity.this,MainActivity.class);
String btn2=no.getText().toString();
intent.putExtra("result","评估结果:"+btn2);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
private void main1() {
Intent intent=new Intent();
intent.setClass(QuestionActivity.this,MainActivity.class);
String btn1=yes.getText().toString();
intent.putExtra("result","评估结果:"+btn1);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
}
这里在测试的时候发现,当输入一个值单击开始评估后,再单击是或者不是时,单击退出发现并不能真正退出程序,而不输入情况下,直接单击退出就可以退出程序。
上网查找了一下 给出了以下:
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
以上这串代码,虽然不知啥意思,什么是结束了Activity周期??
- 以下是程序运行截图