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.
182 lines
6.1 KiB
182 lines
6.1 KiB
package com.community.pocket.ui.main.ui.garbage.waste;
|
|
|
|
import android.os.Bundle;
|
|
import android.text.Editable;
|
|
import android.util.TypedValue;
|
|
import android.view.Gravity;
|
|
import android.view.View;
|
|
import android.widget.AutoCompleteTextView;
|
|
import android.widget.TextView;
|
|
|
|
import androidx.annotation.NonNull;
|
|
import androidx.annotation.Nullable;
|
|
import androidx.gridlayout.widget.GridLayout;
|
|
import androidx.lifecycle.Observer;
|
|
import androidx.lifecycle.ViewModelProvider;
|
|
|
|
import com.community.pocket.R;
|
|
import com.community.pocket.data.adapter.GarbageWasteAdpter;
|
|
import com.community.pocket.data.model.GarbageWaste;
|
|
import com.community.pocket.data.model.GarbageWasteManage;
|
|
import com.community.pocket.data.model.GarbageWastePrice;
|
|
import com.community.pocket.ui.BaseFragment;
|
|
import com.community.pocket.ui.listener.MyTextChange;
|
|
import com.community.pocket.ui.main.ui.share.MyAutoCompleteTextView;
|
|
import com.community.pocket.ui.main.ui.share.Response;
|
|
|
|
import org.xutils.view.annotation.ContentView;
|
|
import org.xutils.view.annotation.ViewInject;
|
|
|
|
import java.util.List;
|
|
|
|
@ContentView(R.layout.garbage_waste)
|
|
public class GarbageWasteFragment extends BaseFragment {
|
|
|
|
//联系管理员
|
|
@ViewInject(R.id.name)
|
|
private TextView name;
|
|
//联系电话
|
|
@ViewInject(R.id.mobie)
|
|
private TextView mobie;
|
|
|
|
//检索废品
|
|
@ViewInject(R.id.search_price)
|
|
private AutoCompleteTextView searchPrice;
|
|
|
|
@ViewInject(R.id.waste_layout)
|
|
private GridLayout layout;
|
|
|
|
private MyAutoCompleteTextView myAutoCompleteTextView;
|
|
|
|
private GarbageWasteAdpter garbageWasteAdpter;
|
|
|
|
@Override
|
|
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
|
super.onViewCreated(view, savedInstanceState);
|
|
|
|
final GarbageWasteViewModel viewModel = new ViewModelProvider(this, new ViewModelProvider.NewInstanceFactory()).get(GarbageWasteViewModel.class);
|
|
|
|
myAutoCompleteTextView = new MyAutoCompleteTextView(searchPrice, viewModel);
|
|
|
|
viewModel.searchDefault();
|
|
|
|
//监听默认废品信息请求状态
|
|
viewModel.getDefaultList().observe(getViewLifecycleOwner(), new Observer<GarbageWasteResponse>() {
|
|
@Override
|
|
public void onChanged(GarbageWasteResponse garbageWasteResponse) {
|
|
if (garbageWasteResponse == null) {
|
|
return;
|
|
}
|
|
|
|
if (garbageWasteResponse.getSuccess() != null) {
|
|
initDefault(garbageWasteResponse.getBody());
|
|
}
|
|
|
|
if (garbageWasteResponse.getError() != null) {
|
|
garbageWasteResponse.fail(getContext());
|
|
}
|
|
}
|
|
});
|
|
|
|
//监听废品信息请求状态
|
|
viewModel.getSearchList().observe(getViewLifecycleOwner(), new Observer<GarbageWasteResponse>() {
|
|
@Override
|
|
public void onChanged(GarbageWasteResponse garbageWasteResponse) {
|
|
if (garbageWasteResponse == null) {
|
|
return;
|
|
}
|
|
|
|
|
|
if (garbageWasteResponse.getResult() == Response.Result.OK) {
|
|
initSearch(garbageWasteResponse.getBody());
|
|
} else {
|
|
garbageWasteResponse.fail(getContext());
|
|
}
|
|
}
|
|
});
|
|
//检索内容改变触发监听器
|
|
searchPrice.addTextChangedListener(new MyTextChange() {
|
|
@Override
|
|
public void afterTextChanged(Editable s) {
|
|
if (garbageWasteAdpter != null && garbageWasteAdpter.containsKey(s.toString())) {
|
|
layout.removeAllViews();
|
|
addHead();
|
|
addItem(garbageWasteAdpter.get(s.toString()));
|
|
return;
|
|
}
|
|
|
|
if (s.length() == 0) {
|
|
viewModel.searchDefault();
|
|
} else {
|
|
myAutoCompleteTextView.searchHandler();
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
/**
|
|
* 检索默认废品信息
|
|
*
|
|
* @param waste 废品信息
|
|
*/
|
|
private void initDefault(GarbageWaste waste) {
|
|
GarbageWasteManage manage = waste.getGarbageWasteManage();
|
|
name.setText(getString(R.string.garbage_waste_name, manage.getName()));
|
|
mobie.setText(getString(R.string.garbage_waste_mobie, manage.getMobie()));
|
|
|
|
layout.removeAllViews();
|
|
addHead();
|
|
|
|
List<GarbageWastePrice> priceList = waste.getDefaultList();
|
|
for (GarbageWastePrice price : priceList) {
|
|
addItem(price);
|
|
}
|
|
}
|
|
|
|
private void addHead() {
|
|
createTextView(getString(R.string.garbage_table_name));
|
|
createTextView(getString(R.string.garbage_table_price));
|
|
}
|
|
|
|
/**
|
|
* 添加一行数据
|
|
*
|
|
* @param price 废品信息
|
|
*/
|
|
private void addItem(GarbageWastePrice price) {
|
|
createTextView(price.getName());
|
|
createTextView(String.valueOf(price.getPrice()));
|
|
}
|
|
|
|
/**
|
|
* 创建单元格
|
|
*/
|
|
private void createTextView(CharSequence text) {
|
|
TextView textView = new TextView(getContext());
|
|
textView.setGravity(Gravity.CENTER | Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL);
|
|
textView.setText(text);
|
|
textView.setBackground(getResources().getDrawable(R.drawable.border));
|
|
textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 24);
|
|
GridLayout.LayoutParams layoutParams = new GridLayout.LayoutParams();
|
|
layoutParams.columnSpec = GridLayout.spec(GridLayout.UNDEFINED, 1f);
|
|
textView.setLayoutParams(layoutParams);
|
|
layout.addView(textView);
|
|
}
|
|
|
|
/**
|
|
* 检索废品回收信息
|
|
*
|
|
* @param waste 废品信息
|
|
*/
|
|
private void initSearch(GarbageWaste waste) {
|
|
// 设置适配器
|
|
if (garbageWasteAdpter == null) {
|
|
garbageWasteAdpter = new GarbageWasteAdpter(waste.getSearchList(), getContext());
|
|
// 将适配器与当前AutoCompleteTextView控件绑定
|
|
searchPrice.setAdapter(garbageWasteAdpter);
|
|
} else {
|
|
garbageWasteAdpter.addAll(waste.getSearchList());
|
|
}
|
|
myAutoCompleteTextView.refreshDropList();
|
|
}
|
|
}
|
|
|