You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

104 lines
3.8 KiB

package com.example.health.foodlist;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.AdapterView;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.Toast;
import com.example.health.Bean.FoodBean;
import com.example.health.Bean.Foodinfo;
import com.example.health.R;
import com.example.health.food_grid.FoodDescActivity;
import com.example.health.food_grid.FoodGridActivity;
import java.util.ArrayList;
import java.util.List;
public class ListActivity extends AppCompatActivity implements View.OnClickListener {
EditText list_edit;
ImageView list_refresh,list_serach;
ListView list_foodlist;
//Listview的内部数据源
List<FoodBean> mDatas;
List<FoodBean> allFoodList;
private ListAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list);
//查找控件
intiView();
//找到Listview对应的数据源
mDatas = new ArrayList<>();
allFoodList = Foodinfo.getAllFoodList();
mDatas.addAll(allFoodList);
//创建适配器 BaseAdapter的子类
adapter = new ListAdapter(this, mDatas);
list_foodlist.setAdapter(adapter);//设置适配器
//设置单向点击监听功能
setListener();
}
private void setListener() {
list_foodlist.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
FoodBean foodBean = mDatas.get(position);
Intent intent = new Intent(ListActivity.this, FoodDescActivity.class);
intent.putExtra("food",foodBean);
startActivity(intent);
}
});
}
private void intiView() {
list_edit=findViewById(R.id.info_edit);
list_refresh=findViewById(R.id.info_refresh);
list_serach=findViewById(R.id.info_search);
list_foodlist=findViewById(R.id.info_foodlistview);
list_refresh.setOnClickListener(this);//添加点击事件的监听器
list_serach.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.info_refresh://刷新点击
list_edit.setText("");
mDatas.clear();
mDatas.addAll(allFoodList);
adapter.notifyDataSetChanged();
break;
case R.id.info_search://搜索点击
// 获取输入内容,判断不为空
String input = list_edit.getText().toString().trim();
if (TextUtils.isEmpty(input)) {
Toast.makeText(this, "输入内容不能为空!", Toast.LENGTH_SHORT).show();
return;
}
// 判断所有食物列表的标题是否包含输入内容,如果包含,就添加到小集合中
List<FoodBean>list = new ArrayList<>();
for (int i = 0; i < allFoodList.size(); i++) {
String foodName = allFoodList.get(i).getFoodName();
if (foodName.contains(input)) {
list.add(allFoodList.get(i));
}
mDatas.clear();//清空Listview的适配器的内容
mDatas.addAll(list);//添加新的数据到数据源中
adapter.notifyDataSetChanged();//提升适配器更新
}
break;
}
}
}