实验内容

1. android 开发环境搭建, 开发工具可以是eclipse+adt 或android studio。

2. 按照实验课要求制作对应的app小程序,实现按钮添加备忘,并且包含日期时间。

3. 编写并提交实验报告。

实验步骤

1.部分代码如下:

<Buttonandroid:id="@+id/b1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:onClick="OnClick"android:text="添加备忘录"/>
<ListViewandroid:id="@+id/L1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:dividerHeight="0.5dp"android:divider="#000000"></ListView>

部分代码如下:
<ScrollViewandroid:id="@+id/scrollView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentBottom="true"android:layout_alignParentLeft="true"android:layout_alignParentRight="true"android:layout_alignParentTop="true"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><TextViewandroid:id="@+id/textView"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="请选择日期和时间" /><DatePickerandroid:id="@+id/datePicker"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center_horizontal"android:calendarViewShown="true"android:endYear="2050"android:spinnersShown="true"android:startYear="2000"
/><!-- 定义一个DatePicker组件 --><!-- 定义一个TimePicker组件 --><TimePickerandroid:id="@+id/timePicker"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center_horizontal"/><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/bt2"android:text="添加图片"android:onClick="Onclick"android:textColor="#ff000d"/><EditTextandroid:id="@+id/edt1"android:layout_width="match_parent"android:layout_height="100dp"android:hint="在这里写备忘记录"android:maxLines="3" /><Buttonandroid:id="@+id/bt1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:text="完成" /></LinearLayout></ScrollView>

2、在MainActivity中显示布局及设定按钮功能

部分代码:
public class MainActivity extends AppCompatActivity {public String makeTimeString(int year,int month,int day,int hour,int minute,String memoText) {return  year + "年" + (month + 1) + "月" + day + "日" + hour+"时" +minute+ "分------" + memoText;}public ArrayList list=new ArrayList();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button b1 = (Button)findViewById(R.id.b1);b1.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View view) {startActivityForResult(new Intent(MainActivity.this,Ctime.class),1);}});}protected void onActivityResult (int requestCode, int resultCode, Intent data){super.onActivityResult(requestCode,resultCode,data);if(requestCode == 1){int year =data.getIntExtra("year",0);int month =data.getIntExtra("month",0);int day = data.getIntExtra("day",0);int hour = data.getIntExtra("hour",0);int minute = data.getIntExtra("minute",0);String memoText = data.getStringExtra("memoText");String text = makeTimeString(year,month,day,hour,minute,memoText);ArrayAdapter<String> adapter =new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,list);adapter.add(text);ListView listView =(ListView)findViewById(R.id.L1);listView.setAdapter(adapter);}}
}

3、在Ctime中获取日期时间等功能

public class Ctime extends AppCompatActivity {public int year;public int month;public int day;public int hour;public int minute;public String memoText;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_ctime);DatePicker dp=(DatePicker)findViewById(R.id.datePicker);TimePicker tp=(TimePicker)findViewById(R.id.timePicker);tp.setIs24HourView(true);Calendar c = Calendar.getInstance();year = c.get(Calendar.YEAR);month = c.get(Calendar.MONTH);day = c.get(Calendar.DAY_OF_MONTH);hour = c.get(Calendar.HOUR);minute = c.get(Calendar.MINUTE);dp.init(year, month, day, new DatePicker.OnDateChangedListener() {@Overridepublic void onDateChanged(DatePicker datePicker, int year, int month, int day) {Ctime.this.year = year;Ctime.this.month =month;Ctime.this.day = day;}});tp.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {@Overridepublic void onTimeChanged(TimePicker timePicker, int hour, int minute) {Ctime.this.hour = hour;Ctime.this.minute =minute;}});Button b2 =(Button)findViewById(R.id.bt1);b2.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {EditText text=(EditText)findViewById(R.id.edt1);memoText =text.getText().toString();Intent data =new Intent();data.putExtra("year",year);data.putExtra("month",month);data.putExtra("day",day);data.putExtra("hour",hour);data.putExtra("minute",minute);data.putExtra("memoText",memoText);setResult(1,data);finish();}});}public void Onclick(View view){AlertDialog.Builder b = new AlertDialog.Builder(Ctime.this);b.setTitle("请绘制:");View MyView = new MyView(Ctime.this);b.setView(MyView);b.setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {}});b.show();}}

4、新建MyView.java并完成绘制图像功能

public class MyView extends View {float firstX;float firstY;Path path;MyView(Context context){super(context);path = new Path();}@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);Paint paint = new Paint();paint.setColor(Color.BLUE);paint.setStrokeWidth(10);//让画出的图形是空心的paint.setStyle(Paint.Style.STROKE);canvas.drawPath(path,paint);}@Overridepublic boolean onTouchEvent(MotionEvent event) {int act = event.getAction();if (act == MotionEvent.ACTION_DOWN){float x = event.getX();float y = event.getY();firstX = x;firstY = y;path.moveTo(firstX,firstY);return true;}else if (act == MotionEvent.ACTION_MOVE){float x = event.getX();float y = event.getY();path.lineTo(x,y);invalidate();}return super.onTouchEvent(event);}
}

实验结果

当按动“添加图像”按钮按钮时,添加图像如图:

Android开发————简易备忘录(三)相关推荐

  1. Android开发实战三之导入现有Android工程项目

    选择Create project from existing sample 打开Eclipse环境后,在左上方的菜单上选择[File->New->Project],会弹出[New Proj ...

  2. 【Android开发】三种方法实现Button点击事件响应

    目录 1.在xml中对onclick()进行指定方法 2.NEW一个OnClickListenner()接口实现 3.实现OnClickListener接口(Switch方法) Hello,你好呀,我 ...

  3. 分享 Android 开发中三个与屏幕有关的小众知识

    宽屏适配.禁止截屏和保持屏幕常亮,这三个与屏幕有关的 Android 开发小众知识,说不定什么时候就派上用场. 宽屏适配 越来越多的手机厂商趋向于全面屏设计,比如今年出厂的 18.5:9 屏幕比例的三 ...

  4. Unity3D研究院之在Unity中打开第三方数据库配合Android开发(三十二)

    http://www.xuanyusong.com/archives/831 http://www.xuanyusong.com/archives/1454 如果大家对Unity中如何使用数据库还不是 ...

  5. Android 开发学习(三)

    文章目录 1. ListView 的 使用 2. RecyclerView 的 使用 (推荐) 3. 动画 3.1 逐帧动画 3.2 补间动画 3.2.1 补间动画 之 alpha透明度 3.2.2 ...

  6. Android开发(三十二)——延时

    模拟延时 private class GetDataTask extends AsyncTask<Void, Void, String[]> {@Overrideprotected Str ...

  7. android开发技巧杂谈

    android开发技巧一 android的一些常用包是发布在国外的,所以一些包,我们下载不下来,我们可以使用阿里云的镜像地址(maven { url 'https://maven.aliyun.com ...

  8. 求助帖:android开发初期:为什么我在活动二设置的singInstance模式跑到活动三去了???

    求android开发的高手帮我看看这个问题吧: <activity android:name=".SecondActivity"             android:la ...

  9. Android UI开发第三十三篇——Navigation Drawer For Android API 7

    Creating a Navigation Drawer中使用的Navigation Drawer的android:minSdkVersion="14",现在Android API ...

最新文章

  1. 成都理工大学乐千桤java考试_2009年度优秀教师、优秀教务工作者评选结果公示-成都理工大学工会...
  2. [Linux] ubuntu 格式化u盘
  3. JAVA TCP通信基础篇——对发消息【如何解决输入流假死状态】
  4. jsTree通过json数据初始化时,如何控制每个选项的图标(icon)显示
  5. 初学者也能看懂的DPDK解析
  6. UIView中常用的方法
  7. Codeforces Round #726 (Div. 2) F. Figure Fixing 二分图 + 思维
  8. linux vector 头文件,LINUX 之Vector用法
  9. hdu 3879 Base Station 最大权闭合图
  10. Django项目:CMDB(服务器硬件资产自动采集系统)--11--07CMDB文件模式测试采集硬件数据...
  11. API功能未授权原因
  12. 1002. 写出这个数 (20)-PAT乙级真题
  13. 微信php 客户端cookie,微信内置浏览器中的cookie很诡异呀
  14. Hive多用户模式搭建
  15. bochs运行xp_bochs xp镜像
  16. 爬虫之模拟强智系统登录
  17. 基于Python的网络爬虫爬取天气数据可视化分析
  18. 【OBS】VS调试启动exe的环境设置
  19. bootstrap4和bootstrap3的区别
  20. ThinkPad 声卡出现未安装任何音频输出设备

热门文章

  1. linux ubuntu联网设置方法,Ubuntu系统无线网络连接设置方法
  2. 基于C#的GIS开发20210422之C#知识点总结、数组、数据类型、字符串总结、函数重载、字段与属性的区分、构造函数的应用、属性设置、普通类与抽象类、面向对象关系梳理
  3. 单测中如何mock用@Value注解注入的属性
  4. Web开发中的路由是什么意思?(关键词:Web开发/路由)
  5. 运动控制 —— 强大的状态机工具
  6. Netty的深入浅出--10.接上一篇netty与protobuf整合的问题
  7. 中科三方:DNS解析如何设置合适的TTL值?
  8. 实现学段年级学科科目教材的联动效果。
  9. [古诗词欣赏]--柳永《蝶恋花》
  10. 计算机毕业设计ssm家教服务平台y467g系统+程序+源码+lw+远程部署