安卓界面跳转作业

2017.4.7

  1. 完成如图所示的任务:
    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);
}
}

成果展示


posted on 2017-04-07 16:25  丁金涛  阅读(647)  评论(1)    收藏  举报

导航