安卓学习第二篇

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jining11/article/details/88549630

一、实验题目

中山大学智慧健康服务平台事件处理


二、实现内容

要求 * 该界面为应用启动后看到的第一个界面。

  • 各控件处理的要求
    1. 点击搜索按钮:

      • 如果搜索内容为空,弹出Toast信息“搜索内容不能为空”。
      • 如果搜索内容为“Health”,根据选中的RadioButton项弹出如下对话框。
        点击“确定”,弹出Toast信息——对话框“确定”按钮被点击
        点击“取消”,弹出Toast 信息——对话框“取消”按钮被点击
        否则弹出如下对话框,对话框点击效果同上。
    2. RadioButton选择项切换:选择项切换之后,弹出Toast信息“XX被选中”,例如从图片切换到视频,弹出Toast信息“视频被选中


三、实验结果

(1)实验截图

基本外观
在这里插入图片描述
搜索为空时:
在这里插入图片描述
搜索为Health时:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

搜索为其他时:
在这里插入图片描述
在这里插入图片描述

按钮切换
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

(2)实验步骤以及关键代码


MainActivity.java


  • 引入包
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;
import android.view.View;
import android.text.TextUtils;
import android.content.DialogInterface;
import android.support.v7.app.AlertDialog;
  • 声明函数
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        radiobuttonClick();
        buttonClick();

    }
  • 搜索按钮点击函数
protected void buttonClick() {
        Button button = (Button) findViewById(R.id.btn1);
        final EditText input = (EditText) findViewById(R.id.edt0);
        final RadioGroup radioGroup = (RadioGroup)findViewById(R.id.radio0);
        //搜索成功对话框设置
        final AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("提示");
        builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(getApplication(), "对话框“确定”按钮被点击", Toast.LENGTH_SHORT).show();
                dialog.dismiss();
            }
        });
        builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(getApplication(), "对话框“取消”按钮被点击", Toast.LENGTH_SHORT).show();
                dialog.dismiss();
            }
        });
        //搜索失败对话框设置
        final AlertDialog.Builder failbuilder = builder;
        //添加监听事件
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if(TextUtils.isEmpty(input.getText().toString())) {
                    Toast.makeText(MainActivity.this, "搜索内容不能为空", Toast.LENGTH_SHORT).show();
                }
                else {
                    if(input.getEditableText().toString().equals("Health")) {
                        RadioButton radio = (RadioButton) findViewById(radioGroup. getCheckedRadioButtonId());
                        builder.setMessage(radio.getText().toString()+"搜索成功");
                        builder.show();
                    }
                    else {
                        failbuilder.setMessage("搜索失败");
                        failbuilder.show();
                    }
                }
            }
        });
    }
  • 多选框点击函数
  private void radiobuttonClick() {
        final RadioGroup radioGroup = (RadioGroup)findViewById(R.id.radio0);
        radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener(){
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                RadioButton radio = (RadioButton) findViewById(group.getCheckedRadioButtonId());
                Toast.makeText(getApplication(),radio.getText().toString()+"被选中", Toast.LENGTH_SHORT).show();
            }
        });
    }

(3)实验遇到的困难以及解决思路


  • 不清楚如何设置AlertDialog的确定按钮

参照这篇博客解决

  • 如果输入Health之后再输入其他值,没有正确提示搜索错误。

参照这篇博客解决

  • 对字符串报错

将’XXX’修正为"XXX"

四、实验思考及感想


在做实验是要多多思考,才能用少而精的代码完成所要求的任务和功能。
比如说这次要根据不同的按钮输入不同的提示信息,一般的做法就是使用多个条件判断语句,但事实上,提示信息与按钮的属性之间有关联,因此只需要用一句话取得按钮的属性之后加以简单修改输出即可。

猜你喜欢

转载自blog.csdn.net/jining11/article/details/88549630