package com.bosi.chineseclass.su.ui.fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.Spinner;
import android.widget.TextView;
import com.bosi.chineseclass.R;
import com.bosi.chineseclass.su.db.DbUtils;
import com.bosi.chineseclass.su.utils.WordUtils;
import java.util.ArrayList;
public class FilerPyFragment extends AbsFilterFragment {
private Spinner mPySpinner;
private GridView mPyGridView;
private GridView mWordsGridView;
@Override
protected View getBasedView() {
LayoutInflater inflater = LayoutInflater.from(getActivity());
View view = inflater.inflate(R.layout.dictionary_filter_py_layout, null, false);
return view;
}
void init() {
mPyGridView = (GridView) getActivity().findViewById(R.id.result_show);
mWordsGridView = (GridView) getActivity().findViewById(R.id.result_show_words);
mPySpinner = (Spinner) getActivity().findViewById(R.id.result_py_filter);
ArrayAdapter pyAdapter = new ArrayAdapter(getActivity(),
android.R.layout.simple_spinner_item, WordUtils.WORDLIST);
pyAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// 设置默认值
mPySpinner.setVisibility(View.VISIBLE);
mPySpinner.setOnItemSelectedListener(new SpinnerSelectedListener());
mPySpinner.setAdapter(pyAdapter);
mPySpinner.setSelection(0);
mPyGridView.setAdapter(new PyAdapter());
mPyGridView.setOnItemClickListener(new PyOnItemClickListener());
mWordsGridView.setAdapter(new WordsAdapter());
setResultOnItemClick(mWordsGridView);
}
private class PyOnItemClickListener implements OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
mSecondFilterList = DbUtils.getInstance(getActivity()).getFilterWordsByPy(
mFilteredList.get(position));
((BaseAdapter) (mWordsGridView.getAdapter())).notifyDataSetChanged();
mWordsGridView.invalidate();
}
}
private class WordsAdapter extends BaseAdapter {
@Override
public int getCount() {
// TODO Auto-generated method stub
return mSecondFilterList.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return mSecondFilterList.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {
holder = new ViewHolder();
holder.textView = (TextView) mInflater.inflate(R.layout.py_grid_item, null, false);
} else {
holder = (ViewHolder) convertView.getTag();
}
convertView = holder.textView;
convertView.setTag(holder);
holder.textView.setText(mSecondFilterList.get(position));
return convertView;
}
private class ViewHolder {
TextView textView;
}
}
private class PyAdapter extends BaseAdapter {
@Override
public int getCount() {
// TODO Auto-generated method stub
return mFilteredList.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return mFilteredList.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {
holder = new ViewHolder();
holder.textView = (TextView) mInflater.inflate(R.layout.py_grid_item, null, false);
} else {
holder = (ViewHolder) convertView.getTag();
}
convertView = holder.textView;
convertView.setTag(holder);
holder.textView.setText(mFilteredList.get(position));
return convertView;
}
private class ViewHolder {
TextView textView;
}
}
private class SpinnerSelectedListener implements Spinner.OnItemSelectedListener {
private int before = -1;
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
((Spinner) parent).setSelection(position, true);
if (before == -1 && position == 0 || before == position) {
before = position;
return;
}
if (before == -1) {
before = position;
}
mFilteredList = DbUtils.getInstance(getActivity()).getFilterListByPy(
WordUtils.WORDLIST[position]);
((BaseAdapter) (mPyGridView.getAdapter())).notifyDataSetChanged();
mPyGridView.invalidate();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mFilteredList = new ArrayList<String>();
}
private ArrayList<String> mFilteredList = null;
private ArrayList<String> mSecondFilterList = new ArrayList<String>();
@Override
public void afterViewInject() {
mFilteredList = DbUtils.getInstance(getActivity()).getFilterListByPy("A");
}
@Override
public String getSelectedRstWord(int postion) {
return mSecondFilterList.get(postion);
}
}