4.6作业

本文展示了一个简单的安卓应用程序设计案例,包括两个界面的布局代码和实现逻辑。通过EditText输入姓名,点击按钮进行评估并跳转到下一个界面,根据选择返回不同的评估结果。

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周期??

  • 以下是程序运行截图

dBgBAAAAAAAA&bo=oAAcAQAAAAARB40!dCABAAAAAAAA&bo=oAAcAQAAAAARAIo!dBkBAAAAAAAA&bo=oAAcAQAAAAARAIo!

我不是喜欢安卓课老师 我喜欢的!! 但我还是最喜欢体育课 \(≧▽≦)/

转载于:https://www.cnblogs.com/yeech/p/6696224.html

<think>好的,我现在需要处理用户关于JavaEE 4.6课后作业的查询。首先,用户提到了引用[1]中的书籍,包括《Head First Design Patterns》、《设计模式》和《Effective Java》,以及Java EE 5.5部分。这可能意味着用户的学习内容涉及设计模式和Java企业版的相关知识。接着,引用[2]中用户的问题涉及Java的基础知识,包括平台版本和JavaEE的开发方向,而引用[3]提到了日期转换的问题,使用to_date函数。用户现在需要JavaEE 4.6的课后作业资料或答案示例。 首先,我需要确认JavaEE 4.6的具体内容。由于Java EE的版本历史,4.6可能不是官方标准版本,可能是课程或教材的特定章节编号。例如,Java EE 5发布于2006年,Java EE 62009年,而后续版本如Java EE 7、8等。可能用户提到的4.6是某个教材的章节,比如第4章第6节,或者某个在线课程的模块编号。需要进一步推断。 根据引用[1]中的Java EE 5.5,可能用户教材中的4.6节涉及Servlet、JSP、JDBC或EJB等内容。例如,课后作业可能涉及创建Servlet处理请求、使用JSP显示数据、配置数据库连接池,或者实现某个设计模式如MVC。 由于用户需要示例答案或资料,我应该提供相关的典型题目及其解答思路。比如,如何编写一个Servlet,如何处理表单提交,如何使用JDBC连接数据库,或者如何应用单例模式、工厂模式等设计模式。 同时,用户提到的引用[3]中的日期转换问题,可能在作业中涉及处理日期格式,比如在JSP中显示格式化日期,或在Servlet中解析用户输入的日期参数。这里需要结合to_date函数或Java中的SimpleDateFormat类。 接下来,我需要考虑用户可能的作业题目类型,例如: 1. 编写一个Servlet,处理用户登录请求,验证用户名和密码。 2. 使用JSP和EL表达式显示动态内容。 3. 配置JDBC连接池,并实现一个DAO类进行数据库操作。 4. 实现MVC模式,将业务逻辑、数据和视图分离。 5. 使用Filter实现权限控制或日志记录。 6. 应用设计模式如工厂模式创建对象。 针对这些题目,我需要给出示例代码和解答步骤。例如,Servlet的结构、web.xml的配置、JSP页面的编写,以及如何应用设计模式。同时,需要确保LaTeX格式正确,如变量和代码块的正确标注。 另外,用户可能遇到的困难包括Servlet的生命周期、JSP的内置对象、JDBC的异常处理,或者设计模式的具体应用场景。解答时需注意这些点,提供清晰的解释和示例。 最后,生成相关问题,帮助用户深入理解JavaEE的核心概念,如Servlet与JSP的区别、MVC的优势、连接池的作用等,并引导他们查阅推荐书籍的相关章节。</think>### 关于JavaEE 4.6课后作业的解答与资料 根据引用内容,JavaEE(Java Platform, Enterprise Edition)主要用于企业级应用开发,如Web服务、分布式系统等[^2]。由于“JavaEE 4.6”可能指向课程或教材的特定章节编号(非官方版本号),以下提供典型JavaEE课后作业示例及解答思路,涵盖核心知识点。 --- #### **示例作业1:Servlet实现用户登录验证** **题目**:编写一个Servlet,接收用户提交的表单数据(用户名、密码),验证是否为“admin/123456”并返回结果。 **解答示例**: ```java @WebServlet("/login") public class LoginServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) { String username = request.getParameter("username"); String password = request.getParameter("password"); if ("admin".equals(username) && "123456".equals(password)) { response.getWriter().write("登录成功!"); } else { response.getWriter().write("用户名或密码错误"); } } } ``` **关键点**: - 使用`@WebServlet`注解或`web.xml`配置Servlet路径[^1]。 - 通过`request.getParameter()`获取表单参数。 - 验证逻辑与响应输出。 --- #### **示例作业2:JSP与EL表达式动态显示数据** **题目**:在JSP页面中,使用EL表达式显示当前系统时间。 **解答示例**: ```jsp <%@ page import="java.util.Date" %> <% Date now = new Date(); request.setAttribute("currentTime", now); %> <html> <body> 当前时间:${currentTime} </body> </html> ``` **关键点**: - 在JSP中通过`<% ... %>`嵌入Java代码。 - 使用`request.setAttribute()`传递数据。 - 通过`${}`语法简化输出。 --- #### **示例作业3:JDBC连接数据库(连接池配置)** **题目**:使用JDBC连接MySQL数据库,查询用户表并输出结果。 **解答示例**: ```java public class UserDAO { public List<User> getAllUsers() { String sql = "SELECT * FROM users"; try (Connection conn = DataSourceUtils.getConnection(); PreparedStatement ps = conn.prepareStatement(sql)) { ResultSet rs = ps.executeQuery(); List<User> users = new ArrayList<>(); while (rs.next()) { users.add(new User(rs.getInt("id"), rs.getString("name"))); } return users; } catch (SQLException e) { throw new RuntimeException("数据库查询失败", e); } } } ``` **关键点**: - 使用连接池(如Apache DBCP)提升性能。 - 通过`try-with-resources`自动释放资源。 - 异常处理与事务管理。 --- #### **示例作业4:应用MVC模式实现用户管理** **题目**:基于MVC模式,设计用户管理系统,包含视图(JSP)、控制器(Servlet)、模型(JavaBean)。 **解答步骤**: 1. **模型(Model)**:定义`User`类(包含`id`, `name`, `email`等属性)。 2. **视图(View)**:通过JSP展示用户列表,使用JSTL循环输出数据。 3. **控制器(Controller)**:编写`UserServlet`处理请求,调用`UserDAO`获取数据并转发到JSP。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值