接下来实现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是实现长按加入收藏,下次再讲;