有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在Android的Edittext上键入内容时,如何使用listview上的过滤器

我想通过edittext找到指定用户。但是,edittext是ListView的第一行。 我怎样才能做到这一点

 public class ChatFragment extends Fragment {
    private ListView chatListView;
    private List<ChatItem> items;
    private ChatAdapter chatAdapter;

    public static ChatFragment newInstance(){
        ChatFragment fragment = new ChatFragment();
        return fragment;
    }

    @Override public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);

    }

    @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle saveInstanceState){
        View view = inflater.inflate(R.layout.chat_fragment, container, false);
        chatListView = (ListView)view.findViewById(R.id.chatListView);
        setupChatList();
        chatListView.setTextFilterEnabled(true);
        return view;
    }

    public void setupChatList(){
        items = new ArrayList<>();
        items.add(new ChatItem(1, "","","",""));
        items.add(new ChatItem(2 ,"layer1", "Chloe Grace Moretz", "Approved your see post request!", "4 mins"));
        items.add(new ChatItem(3 ,"layer2", "Robert Downey", "ok!", "16:19"));
        items.add(new ChatItem(4 ,"layer3", "Amanda Crew", "haha", "19:01"));
        items.add(new ChatItem(5 ,"layer4", "Noah Urrea", "Good choice ~ man", "Yesterday"));
        items.add(new ChatItem(6 ,"layer5", "Blake Rayne", "Jason Papadopoulos I think", "Sunday"));
        chatAdapter = new ChatAdapter(getContext(), items);
        chatListView.setAdapter(chatAdapter);
    }

    public void remove(){
        chatAdapter.remove(items.get(1));
    }
}

我的适配器如下:

  public class ChatAdapter extends ArrayAdapter<ChatItem> {
    private List<ChatItem> items;
    private List<ChatItem> filteredData = null;
    private TextView chatNameTxt;
    private TextView msgTxt;
    private TextView msgTimeTxt;
    private ImageView chatImg;
    private ImageView chatMoreImg;
    private Context context;
    private ItemFilter filter = new ItemFilter();
    private EditText findChat;

    public ChatAdapter(Context context, List<ChatItem> items){
        super(context, -1, items);
        this.items = items;
        this.context = context;
    }

    @Override public View getView(int position, View convertView, ViewGroup parent){
        LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        if (position==0){
            View item0 = inflater.inflate(R.layout.chat_list_view_item0, parent, false);
            findChat = (EditText)item0.findViewById(R.id.findChat);
            findChat.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) {

                }

                @Override
                public void afterTextChanged(Editable s) {
                    ChatFragment chatFragment = new ChatFragment();
                    chatFragment.remove();
                }
            });
            return item0;
        }else {
            View item = inflater.inflate(R.layout.chat_list_view, parent, false);
            chatNameTxt = (TextView) item.findViewById(R.id.chatNameTxt);
            msgTxt = (TextView) item.findViewById(R.id.msgTxt);
            msgTimeTxt = (TextView) item.findViewById(R.id.msgTimeTxt);
            chatImg = (ImageView)item.findViewById(R.id.chatImg);
            chatMoreImg = (ImageView)item.findViewById(R.id.chatMoreImg);

            ChatItem friendItem = items.get(position);
            String chatName = friendItem.getUserNmae();
            String msg = friendItem.getLastMsg();
            String msgTime = friendItem.getLastMsgTime();
            String userImg = friendItem.getUserImageName();

            chatImg.setImageResource(context.getResources().getIdentifier(userImg, "drawable", context.getPackageName()));
            chatNameTxt.setText(chatName);
            msgTxt.setText(msg);
            msgTimeTxt.setText(msgTime);

            return item;
        }
    }
}

共 (0) 个答案