cookbook第三章:实现suggestion界面和功能

接下来实现suggestion界面和功能

首先是界面代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
       <RelativeLayout
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
            android:background="@color/purple"
           android:orientation="horizontal">

            <Button
                android:id="@+id/btn_change"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:layout_gravity="right"
               android:text="随便看看"
               android:background="@drawable/buttonstyle"
               android:textColor="@color/orenge"
               />
           <TextView
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:text="千菜谱"
               android:layout_centerInParent="true"
               
               android:textSize="24sp" />
           <Button
                android:id="@+id/btn_search"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:layout_alignParentRight="true"
               android:text="搜索"
               android:background="@drawable/buttonstyle"
              
               android:textColor="@color/orenge"
               />
            </RelativeLayout> 
        <ListView 
            android:id="@+id/suggestion_listview"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:fadingEdge="vertical"
        android:divider="@color/color_one"
        android:dividerHeight="5dp"
            >
            
        </ListView>
       
    

</LinearLayout>
图线显示出来就是这样的


然后是suggestion实现代码,并且在其中实现随机5个数据显示

package com.example.cookbook;

import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import com.example.cookbook.data.CBInfo;
import com.example.cookbook.data.CBInfoRead;
import com.example.cookbook.data.CollectCooksDAO;

import android.app.Activity;
import android.content.Intent;
import android.content.res.AssetManager;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Toast;

public class Suggestion extends Activity{
	
	private Button btn_change;
	private Button btn_search;
	private ListView lv_collect;
	private MyAdapters adapter=null;
	private List<CBInfo> infos;
	private List<CBInfo> teminfos;
	private AssetManager am;
	private int[] rad=null;
	private CollectCooksDAO ccd;
	private CBInfo info;
	private static boolean isExit=false;
	private static Handler handler=new Handler()
	{
		public void handleMessage(Message msg)
		{
		super.handleMessage(msg);
		isExit=false;
		}
	};
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.suggestion);
		
		btn_change=(Button)findViewById(R.id.btn_change);
		lv_collect=(ListView)findViewById(R.id.suggestion_listview);
		btn_search=(Button)findViewById(R.id.btn_search);
		ccd=new CollectCooksDAO(this);
		
		teminfos=new ArrayList<CBInfo>();
				infos=new ArrayList<CBInfo>();
	     	CBInfoRead read=new CBInfoRead(Suggestion.this);
			   try 
			   {
				teminfos=read.getAllCooks();
				rad=randRange(5,teminfos.size());
				for(int i=0;i<rad.length;i++)
				{
					info=new CBInfo();
					info=teminfos.get(rad[i]);
					infos.add(info);
				}
				adapter=new MyAdapters(this,infos);
				 lv_collect.setAdapter(adapter);
		       } 
			   catch (Throwable e) 
			   {
				// TODO Auto-generated catch block
				e.printStackTrace();
		    	}
	     	btn_search.setOnClickListener(new OnClickListener(){
	     		public void onClick(View v)
	     		{
	     			Intent intent=new Intent(Suggestion.this,SearchCook.class);
	     			startActivity(intent);
	     		}
	     	});
	     	btn_change.setOnClickListener(new OnClickListener(){
	     		public void onClick(View v)
	     		{   
	     			infos.removeAll(infos);
	     			rad=randRange(5,teminfos.size());
	     			for(int i=0;i<rad.length;i++)
					{   
						CBInfo info=new CBInfo();
						info=teminfos.get(rad[i]);
						infos.add(info);
					}
	     			//adapter=new MyAdapters(Suggestion.this,infos);
	     			//lv_collect.setAdapter(adapter);
	     			adapter.notifyDataSetChanged();
	     		}
	     	});
		lv_collect.setOnItemClickListener(new OnItemClickListener(){
			public void onItemClick(AdapterView<?> parent,View view,int position,long id)
			{
				CBInfo info=new CBInfo();
				info=infos.get(position);
				Intent intent=new Intent(Suggestion.this,CookView.class);
				Bundle bundle=new Bundle();
				bundle.putSerializable("info", info);
				intent.putExtras(bundle);
				startActivity(intent);
			}
		});
		lv_collect.setOnItemLongClickListener(new OnItemLongClickListener(){
			public boolean onItemLongClick(AdapterView<?> parent,View view,int position,long id)
			{
				info=infos.get(position);
				ccd.add(info.getName());
				Toast.makeText(getApplicationContext(), "加入收藏", Toast.LENGTH_SHORT).show();
				return true;
			}
		});
	}
	 public int[] randRange(int num ,int max) {
         ArrayList<Integer> list = new ArrayList<Integer>();
         Random rand = new Random();
         while(true){
               int rm = rand.nextInt(max);
               if(!list.contains(rm)){
               list.add(rm);
               if(list.size()>=num)break;
          }
      }
        int result[] = new int[num];
        for(int i = 0;i<list.size();i++){
        result[i] = list.get(i);
      }
      return result;
    }
	 public boolean onKeyDown(int keyCode,KeyEvent keyEvent)
		{
			if(keyCode==KeyEvent.KEYCODE_BACK)
			{
				if(!isExit)
				{
					isExit=true;
					Toast.makeText(getApplicationContext(), "再按一次退出", Toast.LENGTH_SHORT).show();
					handler.sendEmptyMessageDelayed(0, 2000);
				}
				else
				{
					this.finish();
				}
				return false;
			}
			return super.onKeyDown(keyCode, keyEvent);
		}


}

然后基本实现完成,其中onItemLongClick是实现长按加入收藏,下次再讲;



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值