私は、Android用のフラグメント内のlistViewの検索バーを実装しようとしています。私はそれをアクティビティで動かすことにしましたが、今はフラグメントで動作させる必要があります。ここに私のコードは次のとおりです。FragmentクラスのArrayAdapterのコンテキスト
public class AboFragment extends Fragment {
String [] items;
ArrayList<String> listItems;
ArrayAdapter<String> adapter;
ListView listView;
EditText editText;
public AboFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_abo, container, false);
listView=(ListView)v.findViewById(R.id.listview);
editText=(EditText)v.findViewById(R.id.textsearch);
initList();
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if(s.toString().equals("")){
initList();
}
else{
searchItem(s.toString());
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
Button dealerActivity = (Button) v.findViewById(R.id.button_dealer);
dealerActivity.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent startDealer = new Intent(getActivity(), DealerActivity.class);
startActivity(startDealer);
}
});
return v;
}
public void initList(){
items = new String[]{"Canada", "China", "Japan", "USA"};
listItems = new ArrayList<>(Arrays.asList(items));
adapter = new ArrayAdapter<String>(this, R.layout.list_item, R.id.textitem, listItems);
listView.setAdapter(adapter);
}
public void searchItem(String textToSearch){
for(String item:items){
if(!item.contains(textToSearch)){
listItems.remove(item);
}
}
adapter.notifyDataSetChanged();
}
}
問題は、私は私のArrayList用のアダプタを初期化しようとしているinitList()メソッドであるが、私はそれを修正するかどうかはわかりません。これは「これ」を受け入れません。私も "getContext"を成功させようと試みました。エラーメッセージは "コンストラクタを解決できません"です。 コンテキストとして「getActivity」を使用してアプリケーションを実行すると、クラッシュすることはありませんが、検索バーには表示されません。
いいえ、いいえ、いいえ、 'adapter.getFilter()。filter(constraint)'を呼び出すことでアダプターのフィルターが行われました.SOとウェブには数百もの例があります – pskink
質問したいのですが不足している検索バーについて –