gpt4 book ai didi

android - 作为 HeaderView 一部分的 EditText 失去了对输入的关注

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:27:32 25 4
gpt4 key购买 nike

这是我仅针对 > Android 4.0 设备面临的问题。

目前我有一个 listView 和一个自定义 header ,我将其添加到 ListActivity 的 onCreate() 中。

我将 editText 用作应用程序中的自定义搜索栏。

以下是一个代码 fragment ,希望能解释我的实现。



<pre>private ListView lst_Reports = null;

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

setContentView(R.layout.showreportlist);

lst_Reports = (ListView) findViewById(R.id.VuoShowReportsActivity_Lst_Reports);

/*
* Initialize UI
*/

LinearLayout headerView = (LinearLayout) View.inflate(this, R.layout.report_list_header, null);
EditText reportSearchBar = (EditText) headerView.findViewById(R.id.reportSearchBar);
lst_Reports.addHeaderView(headerView);

reportSearchBar.addTextChangedListener(new TextWatcher() {

public void afterTextChanged(Editable s) {

}

public void beforeTextChanged(CharSequence s, int start, int count, int after) {

}

public void onTextChanged(CharSequence s, int start, int before, int count) {

// do a search as and when the user inputs text

if (s != null && s.length() > 0) {

String query = s.toString();
List queriedReports = getReportsBasedOnQueryString(query);

// populate the listView with the queriedReports

}

}

});

}

protected List getReportsBasedOnQueryString(String query) {
// TODO Auto-generated method stub
return null;
}

</pre>

当此代码在 Android 2.3.5 设备上执行时,我可以在 editText 中正常输入。但是,当在具有 Ice Cream Sandwich 的 Galaxy S3 上部署同一段代码时,我一次只能在 editText 中输入一个字符,因为它在每次按键输入后都会失去焦点。

我已经尝试过以下针对类似问题的建议解决方案。他们都没有解决这个问题。

  • AndroidManifest 中的 Activity :

    • android:windowSoftInputMode="stateHidden"
    • android:windowSoftInputMode="adjustPan"
  • 在 Activity 的布局 xml 中:

    • android:descendantFocusability="beforeDescendants"

我很感激任何对此的帮助/反馈,也很想知道是否有其他人报告过同样的问题。

谢谢拉惹

最佳答案

public void onTextChanged(CharSequence s, int start, int before, int count) {

// do a search as and when the user inputs text

if (s != null && s.length() > 0) {

String query = s.toString();
List queriedReports = getReportsBasedOnQueryString(query);

// populate the listView with the queriedReports

}
// add below line in your code
reportSearchBar.requestFocus();


}

关于android - 作为 HeaderView 一部分的 EditText 失去了对输入的关注,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16941036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com