Edittext in Listview android(Listview android中的Edittext)
问题描述
我有带有 editext 和 textview 的 Listview.
I have Listview with editext and textview.
当我触摸 edittext 时,edittext 失去焦点!
When i touch on edittext then edittext lost focus!
我通过设置 android:windowSoftInputMode="adjustPan"(AndroidManifest.xml)
解决了这个问题.现在我触摸edittext而不是editext获得焦点,但应用程序标签和一些原始列表视图消失(顶部).
I resolved this problem by setting android:windowSoftInputMode="adjustPan"(AndroidManifest.xml)
.
Now i touch on edittext than editext get focus but application label and some raw of listview disappear(top part).
我想在用户触摸 edittext 时获得焦点,而不会丢失应用程序标签和一些原始列表视图.
I want to get focus when user touch on edittext without loss application label and some raw of listview.
我已经实现的代码:
当用户触摸edittext但应用程序标签和一些原始列表视图在软键盘弹出时消失时,下面的代码获得焦点.我想在用户触摸edittext时获得焦点而不丢失应用程序标签和一些原始列表视图.
Below coding get focus when user touch on edittext but application label and some raw of listview disappear when soft keypad pop up.I want to get focus when user touch on edittext without loss application label and some raw of listview.
1)AndroidManifest.xml
1)AndroidManifest.xml
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".MyListViewDemoActivity"
android:label="@string/app_name"
android:windowSoftInputMode="adjustPan"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
2) raw_layout.xml
2) raw_layout.xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<EditText android:id="@+id/mEditText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
3) main.xml
3) main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ListView android:id="@+id/mListView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
4) MyListViewDemoActivity
4) MyListViewDemoActivity
public class MyListViewDemoActivity extends Activity {
private ListView mListView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mListView=(ListView)findViewById(R.id.mListView);
mListView.setAdapter(new MyAdapter(this));
}
}
class MyAdapter extends BaseAdapter {
private Activity mContext;
private String character[]={"a","b","c","d","e","f","g","h","i","j"};
public MyAdapter(Activity context)
{
mContext=context;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return character.length;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
private class Holder
{
EditText mEditText;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
final Holder holder;
if (convertView == null) {
holder = new Holder();
LayoutInflater inflater =mContext.getLayoutInflater();
convertView = inflater.inflate(R.layout.raw_layout, null);
holder.mEditText = (EditText) convertView
.findViewById(R.id.mEditText);
convertView.setTag(holder);
} else {
holder = (Holder) convertView.getTag();
}
holder.mEditText.setText(character[position]);
holder.mEditText.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
// TODO Auto-generated method stub
if (!hasFocus){
final EditText etxt = (EditText) v;
holder.mEditText.setText(etxt.getText().toString());
}
}
});
return convertView;
}
}
推荐答案
我也遇到了同样的问题.我的数字键盘会在被 qwerty 键盘替换之前暂时出现,并且 EditText 失去焦点.
I was having the same problem. My numberic keyboard would momentarily appear before being replaced by the qwerty keyboard and the EditText losing focus.
问题是出现的键盘使您的 EditText 失去焦点.为防止这种情况发生,请在您的 AndroidManifest.xml 中为适当的活动(或活动)添加以下内容:
The problem is that the keyboard appearing makes your EditText lose focus. To prevent this put the following in your AndroidManifest.xml for the appropriate Activity (or Activities):
android:windowSoftInputMode="adjustPan"
请参阅 Android 文档:
See Android documentation:
当输入法出现在屏幕上时,它会减少可用于应用 UI 的空间量.系统会决定如何调整 UI 的可见部分,但它可能无法正确处理.为确保您的应用获得最佳行为,您应该指定您希望系统如何在剩余空间中显示您的 UI.
When the input method appears on the screen, it reduces the amount of space available for your app's UI. The system makes a decision as to how it should adjust the visible portion of your UI, but it might not get it right. To ensure the best behavior for your app, you should specify how you'd like the system to display your UI in the remaining space.
要在活动中声明您的首选处理方式,请在清单的 <activity>
元素中使用 android:windowSoftInputMode
属性和adjust"之一.价值观.
To declare your preferred treatment in an activity, use the android:windowSoftInputMode
attribute in your manifest's <activity>
element with one of the "adjust" values.
例如,为了确保系统将您的布局调整到可用空间——这确保所有布局内容都可以访问(即使它可能需要滚动)——使用 adjustResize"
For example, to ensure that the system resizes your layout to the available space—which ensures that all of your layout content is accessible (even though it probably requires scrolling)—use "adjustResize"
这篇关于Listview android中的Edittext的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Listview android中的Edittext
基础教程推荐
- 如何让对象对 Cocos2D 中的触摸做出反应? 2022-01-01
- 当从同一个组件调用时,两个 IBAction 触发的顺序是什么? 2022-01-01
- 如何在 iPhone 上显示来自 API 的 HTML 文本? 2022-01-01
- 在 gmail 中为 ios 应用程序检索朋友的朋友 2022-01-01
- android 应用程序已发布,但在 google play 中找不到 2022-01-01
- Android:对话框关闭而不调用关闭 2022-01-01
- 如何在没有IB的情况下将2个按钮添加到右侧的UINavigationbar? 2022-01-01
- Kivy Buildozer 无法构建 apk,命令失败:./distribute.sh -m “kivy"d 2022-01-01
- UIWebView 委托方法 shouldStartLoadWithRequest:在 WKWebView 中等效? 2022-01-01
- 如何在 UIImageView 中异步加载图像? 2022-01-01