android:id="@+id/lvshow"
android:layout_height="145dp"/>
android:id="@+id/tab_menu"
android:layout_marginTop="180dp">
5.itemListView内容填充
android:id="@+id/itemName"
android:layout_marginLeft="10dp"
android:textSize="18sp"
android:textColor="#444444"
android:textStyle="bold"
android:ems="10"/>
android:id="@+id/itemContent"
android:maxLines="1"
android:ellipsize="end"
一、课设题目
二、技术说明
1.Activity之间的跳转
引用Intent类,实现Activity之间的跳转以及数据的传递与回传
2.Sqlite数据库
导入SQLiteDatabase,SQLiteOpenHelper包,调用安卓内嵌数据库进行数据传递,实现数据的添加,查询,修改,删除功能
3.控件的使用
Textview、Button、Edittext、ImageView、Listview
4.Listview的使用
在使用ListView进行添加数据时,会用到数据适配器,用来搭建数据与视图之间的桥梁,将复杂的数据转换成用户可以接受的方式进行呈现
5.事件的监听
SetOnClickListener()方法监听事件,多用在跳转时
6.页面布局
使用线性布局(LinearLayout)、相对布局(RelativeLayout)
7.Toast弹窗
三、UML类图
四、代码
清单文件(即AndroidManifest.xml)
//设置初始界面
布局文件:
2.Java文件
Java源码
Caipiadapter.java文件设置适配器
//设置listview
packageadapter;
importjava.util.List;
importorg.eclipse.jdt.annotation.NonNull;
importorg.eclipse.jdt.annotation.Nullable;
importcom.example.sichu.R;
importentity.caipu;
importandroid.content.Context;
importandroid.util.Log;
importandroid.view.LayoutInflater;
importandroid.view.View;
importandroid.view.ViewGroup;
importandroid.widget.ArrayAdapter;
importandroid.widget.BaseAdapter;
importandroid.widget.ImageView;
importandroid.widget.TextView;
publicclasscaipiadapterextendsBaseAdapter{
privateListlist;
privateLayoutInflaterlayoutInflater;
publiccaipiadapter(Contextcontext,Listlist){
this.layoutInflater=LayoutInflater.from(context);
this.list=list;
}
@Override
publicintgetCount(){
Log.e("yanwenhua","list.size()--"+list.size());
returnlist.size();
publicObjectgetItem(intposition){
returnnull;
publiclonggetItemId(intposition){
return0;
publicViewgetView(intposition,ViewconvertView,ViewGroupparent){
ViewHolderviewHolder;
if(convertView==null){
convertView=layoutInflater.inflate(R.layout.item,null);
viewHolder=newViewHolder(convertView);
convertView.setTag(viewHolder);
}else{
viewHolder=(ViewHolder)convertView.getTag();
caipucaipu=list.get(position);
viewHolder.tv_name.setText("菜谱:"+caipu.getConName());
viewHolder.tv_details.setText("菜谱详情:"+caipu.getCondetails());
Log.e("yanwenhua","cartBean.getName()-"+caipu.getConName()+""+caipu.getCondetails()+"");
returnconvertView;
classViewHolder{
TextViewtv_name;
TextViewtv_details;
publicViewHolder(Viewview){
tv_name=(TextView)view.findViewById(R.id.itemName);
tv_details=(TextView)view.findViewById(R.id.itemContent);
Caipu.java//设置实体类,用于数据的获取与传递
packageentity;
publicclasscaipu{
privateIntegerconId;
privateStringconName;
privateStringcondetails;
publiccaipu(IntegerconId,StringconName,Stringcondetails){
super();
this.conId=conId;
this.conName=conName;
this.condetails=condetails;
publiccaipu(){
//TODOAuto-generatedconstructorstub
publicIntegergetConId(){
returnconId;
publicvoidsetConId(IntegerconId){
publicStringgetConName(){
returnconName;
publicvoidsetConName(StringconName){
publicStringgetCondetails(){
returncondetails;
publicvoidsetCondetails(Stringcondetails){
packagecom.example.sichu;
importandroid.app.Activity;
importandroid.content.Intent;
importandroid.os.Bundle;
importandroid.widget.Button;
importandroid.widget.EditText;
importandroid.widget.Toast;
publicclassloginextendsActivity{
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
ButtonLogin=(Button)findViewById(R.id.login_bt);
Login.setOnClickListener(newView.OnClickListener(){
publicvoidonClick(Viewview){
//TODOAuto-generatedmethodstub
EditTextadmin=(EditText)findViewById(R.id.login_et);
EditTextpassword=(EditText)findViewById(R.id.login_ps);
Stringadmin1=admin.getText().toString().trim();
Stringpassword1=password.getText().toString().trim();
if("123456".equals(admin1)&&"123".equals(password1)){
Intentintent=newIntent(login.this,MainActivity.class);
startActivity(intent);
});
//Intentintent=newIntent(login.this,MainActivity.class);
//startActivity(intent);
//}
//});
//ButtonLogin=(Button)findViewById(R.id.login_bt);
//Login.setOnClickListener(newView.OnClickListener(){
//TextViewtextView;
//@Override
//publicvoidonClick(Viewview){
MainActivity.java//对应主页
importjava.util.ArrayList;
importadapter.caipiadapter;
importandroid.view.Menu;
importandroid.widget.ListView;
publicclassMainActivityextendsActivity{
setContentView(R.layout.activity_main);
TextViewmy=(TextView)findViewById(R.id.txt_my);
my.setOnClickListener(newView.OnClickListener(){
Intentintent=newIntent(MainActivity.this,MyActiviity.class);
Buttonbtn=(Button)findViewById(R.id.index_btn);
btn.setOnClickListener(newView.OnClickListener(){
Intentintent=newIntent(MainActivity.this,upload.class);
MyActiviity.java//对应我的菜谱页
importandroid.content.ContentValues;
importandroid.database.Cursor;
importandroid.database.sqlite.SQLiteDatabase;
publicclassMyActiviityextendsActivityimplementsView.OnClickListener{
privateListconsList=newArrayList();
MyHelperhelper;
privateEditTextet_name,et_details;
privateListViewlistView;
privateStringname,details;
privateSQLiteDatabasedb;
setContentView(R.layout.my);
et_name=(EditText)findViewById(R.id.et_name);
et_details=(EditText)findViewById(R.id.et_details);
listView=(ListView)findViewById(R.id.lvshow);
Buttonadd=(Button)findViewById(R.id.btn_add);
Buttonquery=(Button)findViewById(R.id.btn_query);
Buttondelete=(Button)findViewById(R.id.btn_delect);
add.setOnClickListener(this);
query.setOnClickListener(this);
delete.setOnClickListener(this);
helper=newMyHelper(this);
TextViewmy=(TextView)findViewById(R.id.txt_index);
Intentintent=newIntent(MyActiviity.this,MainActivity.class);
publicvoidonClick(Viewv){
switch(v.getId()){
caseR.id.btn_add:
db=helper.getWritableDatabase();
name=et_name.getText().toString();
details=et_details.getText().toString();
ContentValuesvalues=newContentValues();//创建ContentValues对象
values.put("name",name);//将数据添加到ContentValues对象
values.put("details",details);
db.insert("info",null,values);
db.close();
Toast.makeText(this,"菜谱已添加",Toast.LENGTH_SHORT).show();
break;
caseR.id.btn_query:
Log.e("yanwenhua","123");
Listlist=newArrayList();
Cursorcursor=db.query("info",null,null,null,null,
null,null);
if(cursor.getCount()==0){
Toast.makeText(this,"还没有编辑无法查看",Toast.LENGTH_SHORT).show();
while(cursor.moveToNext()){
caipucaipu=newcaipu();
intnameIndex=cursor.getColumnIndex("name");
intdetailsIndex=cursor.getColumnIndex("details");
Stringname=cursor.getString(nameIndex);
Stringdetails=cursor.getString(detailsIndex);
Log.e("yanwenhua","cursor.getCount();--"+cursor.getCount()+"name-"+name+""+details+"");
caipu.setConName(name);
caipu.setCondetails(details);
list.add(caipu);
caipiadapteradapter=newcaipiadapter(MyActiviity.this,list);
listView.setAdapter(adapter);
adapter.notifyDataSetChanged();
cursor.close();
caseR.id.btn_delect:
db.delete("info",null,null);
Listlist2=newArrayList();
caipiadapteradapter=newcaipiadapter(MyActiviity.this,list2);
Toast.makeText(this,"菜谱已删除",Toast.LENGTH_SHORT).show();
Upload.java//对应菜谱详情页
publicclassuploadextendsActivity{
setContentView(R.layout.upload);
TextViewcanel=(TextView)findViewById(R.id.upload_null);
canel.setOnClickListener(newView.OnClickListener(){
Intentintent=newIntent(upload.this,MainActivity.class);
MyHelper.java//SQLite数据库实现
importandroid.database.sqlite.SQLiteOpenHelper;
publicclassMyHelperextendsSQLiteOpenHelper{
privateSQLiteDatabasesqLiteDatabase;
publicMyHelper(Contextcontext){
super(context,"caipu.db",null,1);
sqLiteDatabase=this.getWritableDatabase();
publicvoidonCreate(SQLiteDatabasedb){
db.execSQL("createtableinfo(idintegerprimarykeyautoincrement,namevarchar(20),detailsvarchar(300))");
publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){}
类说明
Caipiadapter.java——定义适配器
Caipu.java——封装实体类对象
MainActivity.class——设置首页
MyActiviity.java——设置我的菜谱页面
upload.java——设置菜谱详情页面
MyHelper.java——SQLite数据库的定义以及数据表、字段及类型的创建