安卓界面跳转作业
2017.4.7
- 完成如图所示的任务:
a) 在主屏幕输入自己的姓名,单击进入评估按钮,进入第二个界面,并将主屏幕输入的姓名传递给第二个界面;
b) 在第二个界面进行问题回答;
c) 第二个界面的回答结果返回第一个界面并显示。
![]()
界面
现在界面做起来相对应比较简单,所以代码不详细展示。
实现左右等比例分配的话:android:layout_width=""设为0dp, android:layout_height="wrap_content"且android:layout_weight=""设为1即可,
上下等比例:android:layout_width="wrap_content", android:layout_width="0dp"且android:layout_weight=""设为1即可,android:layout_weight的值为几即占几份。
android:hint="请输入姓名" 中hint为来设置当EditText内容为空时显示的文本。
java代码
整体思路:
1.主界面使用startActivityForResult(intent, requestCode);传递EditText中输入的姓名。
2.子界面接受主界面传输的姓名并且使用setResult(resultCode, 返回的intent)返回按钮上的文字数据。
3.主界面使用onActivityResult(int requestCode, int resultCode, Intent data)获取data,通过比较主Activity发出的requestCode、子Activity发出的resultCode,获取对应的子Activity返回的intent的数据
退出按钮
btbutton2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (btbutton2.isClickable()) {
Toast.makeText(MainbackActivity.this, "再按一次退出按钮",
Toast.LENGTH_LONG).show();//如果退出按钮被点击一下,会显示文本再按一次退出按钮
btbutton2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (btbutton2.isClickable()) {
MainbackActivity.this.finish();//再一次监听按钮,如果再按一次退出按钮,就会关闭整个界面
}
}
});
}
}
});
主界面向子界面传递数据
if (TextUtils.isEmpty(etshuru.getText().toString())) {
Toast.makeText(MainbackActivity.this, "输入名称不能为空", Toast.LENGTH_SHORT).show(); //如果没有输入名字就点击进入评估的话就会显示
return;
}
String name = etshuru.getText().toString();
Intent mIntent = new Intent(MainbackActivity.this, JiemianActivity.class);
mIntent.putExtra("name", etshuru.getText().toString().trim() + "同学:学习Android有没有信心?"); //将name字符串传递给子界面,trim()为去掉两边的空格
startActivityForResult(mIntent, 1000);
子界面接收数据
Intent intent = getIntent();
TextView tvshow=(TextView)findViewById(R.id.show);
String name=intent.getStringExtra("name"); //接收主界面传递过来的name数据
tvshow.setText(name);
子界面返回数据
private void ruturn() {
Intent intent=new Intent(this,MainbackActivity.class);
Button btnbutton3=(Button)findViewById(R.id.button3);
String name=btnbutton3.getText().toString();
intent.putExtra("name","评估内容返回为:"+name);
finish();
}
主界面接受返回数据
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data); //使用onActivityResult(int requestCode, int resultCode, Intent data)获取data
if (requestCode == 1000 && (resultCode == 1001 || resultCode == 1002)) { //使主界面的requestCode1000和子界面的resultCode1001或者1002比较
TextView tvshow = (TextView) findViewById(R.id.show);
String result = data.getStringExtra("name"); //接收子界面传递的"name"数据
tvshow.setText(result);
}
}
成果展示





浙公网安备 33010602011771号