0
我在自定義彈出窗口中有一個searchview,下面有一個listview。Android,searchview在自定義彈出框中沒有輸入文字
我想實現一個標準的searchview場景 - 在searchview中輸入文本將過濾在列表視圖中顯示的內容。
出於某種原因,我無法在searchview中輸入文本。 軟鍵盤顯示正常,但是當我輸入時,沒有輸入文字。
public void display(final LayoutInflater inflater, int layout, final View anchor, ArrayList<String> docs, String currentDoc){
LinearLayout popupView = (LinearLayout)inflater.inflate(layout, null);
final InputMethodManager imm = (InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE);
if(mList == null){
mList = (ListView)popupView.findViewById(R.id.doc_pop_list);
}
mDocuments = docs;
adapter = new ArrayAdapter<String>(mContext, R.layout.list_item,docs);
mList.setAdapter(adapter);
searchDocs=(SearchView) popupView.findViewById(R.id.doc_list_search);
searchDocs.requestFocus();
searchDocs.setQuery("", false);
searchDocs.setOnQueryTextListener(new OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String text) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean onQueryTextChange(String text) {
adapter.getFilter().filter(text);
return false;
}
});
mList.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
docName = mList.getItemAtPosition(position).toString();
mWindow.dismiss();
mListener.docSelected(docName.toString());
}
});
Button dismiss = (Button)popupView.findViewById(R.id.button_docs_close);
dismiss.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
mWindow.dismiss();
}
});
查看上面的java代碼;
在我的xml我有一個自定義列表視圖項:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:gravity="center_vertical"
android:paddingStart="?android:attr/listPreferredItemPaddingStart"
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
android:minHeight="?android:attr/listPreferredItemHeightSmall"
android:textColor="#000000" />
,這是這個佈局中顯示:
<SearchView
android:id="@+id/doc_list_search"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_alignParentLeft="true"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:queryHint="Search documents..." >
</SearchView>
</RelativeLayout>
<ListView
android:id="@+id/doc_pop_list"
android:layout_width="match_parent"
android:layout_height="420dp"
android:layout_above="@+id/doclist_close"
android:layout_below="@+id/docs_title"
android:layout_centerHorizontal="true"
android:layout_marginBottom="16dp"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:background="#ffffff" >
</ListView>
<Button
android:id="@+id/button_docs_close"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/blue"
android:text="@string/close"
android:textColor="@color/white" />
.....
任何想法是什麼原因造成這種現象?
感謝
好吧,我想這一點,我不能得到任何輸出logcat的。我添加了幾個斷點,以便我能夠在文本發生變化時捕獲這些斷點,而不是任何東西。 – mangledBadger
好吧,我測試了你的代碼(只是基本功能),輸入顯示正常。也許它會幫助你(查看編輯答案)。 – SILL
嘿,謝謝,我已經嘗試了上面的,好吧,重構它以適合我的使用方式,但要保持基本相同。還沒有發生。現在,我的自定義彈出視圖顯示在軟鍵盤上,CSS z-index per-say,你認爲這是相關的嗎?我在獨立活動中使用與上面相同的實現,並且它的功能正常。當它在這個自定義視圖中實現時,它不起作用。 – mangledBadger