Android ListPopupWindow在键入后关闭

Android ListPopupWindow在键入后关闭,android,listview,popupwindow,mention,Android,Listview,Popupwindow,Mention,我正在尝试在我的应用程序中获得一个提及类型的弹出窗口,当弹出窗口出现时,用户滚动,然后继续键入弹出窗口,弹出窗口将关闭。有没有办法让弹出窗口一直打开,直到我们调用Disclose 这是我正在使用的代码 public class MainActivity extends AppCompatActivity { private EditText editText; private ListPopupWindow listPopup; @Override p

我正在尝试在我的应用程序中获得一个提及类型的弹出窗口,当弹出窗口出现时,用户滚动,然后继续键入弹出窗口,弹出窗口将关闭。有没有办法让弹出窗口一直打开,直到我们调用Disclose

这是我正在使用的代码

    public class MainActivity extends AppCompatActivity
{

    private EditText editText;
    private ListPopupWindow listPopup;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        editText = (EditText) findViewById(R.id.editText);

        String[] states = getResources().getStringArray(R.array.state_array);
        ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, states);

        listPopup = new ListPopupWindow(this);
        listPopup.setHeight(300);
        listPopup.setAnchorView(editText);
        listPopup.setAdapter(adapter);
        //listPopup.setModal(false);



        listPopup.setOnItemClickListener(new AdapterView.OnItemClickListener()
        {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id)
            {
                Toast.makeText(MainActivity.this, "Position " + String.valueOf(position) + " Clicked", Toast.LENGTH_SHORT).show();
            }
        });


        editText.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                if(!listPopup.isShowing())
                {
                    listPopup.setInputMethodMode(ListPopupWindow.INPUT_METHOD_NEEDED);
                    listPopup.show();
                    listPopup.getListView().setChoiceMode(AbsListView.CHOICE_MODE_SINGLE);
                    editText.requestFocus();
                }
            }
        });
    }

}
public类MainActivity扩展了AppCompatActivity
{
私人编辑文本;
私有ListPopupWindow listPopup;
@凌驾
创建时受保护的void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText=(editText)findViewById(R.id.editText);
String[]states=getResources().getStringArray(R.array.state_数组);
ArrayAdapter=新的ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1的状态);
listPopup=新ListPopupWindow(此);
listpoop.setHeight(300);
listPopup.setAnchorView(编辑文本);
setAdapter(适配器);
//listPopup.setModal(false);
listPopup.setOnItemClickListener(新的AdapterView.OnItemClickListener()
{
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id)
{
Toast.makeText(MainActivity.this,“Position”+String.valueOf(Position)+“Clicked”,Toast.LENGTH_SHORT.show();
}
});
editText.setOnClickListener(新视图.OnClickListener()
{
@凌驾
公共void onClick(视图v)
{
如果(!listPopup.isShowing())
{
listPopup.setInputMethodMode(需要ListPopupWindow.INPUT\u方法);
listppopup.show();
listPopup.getListView().setChoiceMode(AbsListView.CHOICE\u MODE\u SINGLE);
editText.requestFocus();
}
}
});
}
}

您找到解决方案了吗?我也面临同样的问题problem@gikarasojokinene我想我们最终使用了一个自定义的AutoCompleteTextView,不知道为什么我之前没有找到它,或者为什么没有人提到它。你找到解决方案了吗?我也面临同样的问题problem@gikarasojokinene我想我们最终使用了一个自定义的AutoCompleteTextView,不知道为什么我之前没有找到它,或者为什么没有人提到它