Android 当键盘弹出时,显示/隐藏listview中的编辑文本将不可见
我有一个自定义Listview,其适配器扩展了BaseAdapter类。listview中的每一行中都有一个不可见的EditText。它只对已单击的特定行可见,而在该行的其余部分它仍然不可见。当我触摸edittext以获取键盘时,问题出现了,键盘一出现,listview就被回收,edittext再次变为不可见。 我正在寻找一种解决方案,即选择该行后,键盘会立即聚焦于edittext,或者当键盘弹出时,edittext不会消失。以下是我正在使用的适配器: 这是我的适配器xml文件 已保存的\u选项\u适配器\u content.xmlAndroid 当键盘弹出时,显示/隐藏listview中的编辑文本将不可见,android,listview,keyboard,popup,android-edittext,Android,Listview,Keyboard,Popup,Android Edittext,我有一个自定义Listview,其适配器扩展了BaseAdapter类。listview中的每一行中都有一个不可见的EditText。它只对已单击的特定行可见,而在该行的其余部分它仍然不可见。当我触摸edittext以获取键盘时,问题出现了,键盘一出现,listview就被回收,edittext再次变为不可见。 我正在寻找一种解决方案,即选择该行后,键盘会立即聚焦于edittext,或者当键盘弹出时,edittext不会消失。以下是我正在使用的适配器: 这是我的适配器xml文件 已保存的\u选项
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:id="@+id/lineItem"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
>
<TextView
android:id="@+id/textLine"
android:layout_height="wrap_content"
android:layout_marginLeft="70dp"
android:layout_marginTop="15sp"
android:layout_marginBottom="5sp"
android:textSize="14sp"
android:paddingTop="-5dp"
android:layout_width="wrap_content"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_alignParentRight="true">
<EditText
android:id="@+id/edittext_qty"
android:visibility="invisible"
android:gravity="center"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:singleLine="true"
android:maxLength="4"
android:textSize="14sp"
android:inputType="numberPassword"
android:focusable="true"
android:textColor="@android:color/black"
android:hint="cvv"/>
</LinearLayout>
</RelativeLayout>
我在代码中没有看到listview。也许ArrayAdapter可以帮助您:payOptionList=ListView returnView.findViewByIdR.id.list;payOptionList.setFocusableInTouchModetrue;我在创建ListView时没有问题。当键盘弹出时,ListView回收出现问题
public View getView(final int position, View convertView, final ViewGroup parent)
{
final ViewHolder holder;
if (convertView == null)
{
convertView = mInflater.inflate(R.layout.saved_options_adapter_content, null);
holder = new ViewHolder();
holder.textLine = (TextView) convertView.findViewById(R.id.textLine);
holder.Edittext = (EditText) convertView.findViewById(R.id.edittext_qty);
editTextList.add(holder.Edittext);
convertView.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(final View v)
{
selected_Txt="";
if(view==null || view!=v){
v.post(new Runnable() {
@Override
public void run() {
view=v;
ViewHolder holder = ((ViewHolder)v.getTag());
holder.Edittext.setVisibility(View.VISIBLE);
holder.Edittext.requestFocus();
holder.Edittext.setCursorVisible(true);
holder.Edittext.setFocusable(true);
if(selectedHolder != null ){
selectedHolder.Edittext.setVisibility(View.INVISIBLE);
}
selectedHolder = holder;
}
});
}
}
});
convertView.setTag(holder);
}
else
{
holder = (ViewHolder) convertView.getTag();
((ViewHolder)convertView.getTag()).Edittext.setTag(title.get(position));
}
convertView.setTag(holder);
return convertView;
}