当我点击ListFragment中的EditText(请参见“您的答案…”字段是下面的屏幕上限)时,它不会保持焦点,因此无法使用。文本光标一出现在EditText字段上,它就会迅速消失,EditText域就会失去焦点。
我发现了一些相关的堆栈帖子,并怀疑有什么东西可能从EditText中窃取了焦点。请参阅此处的相关帖子。我也读过关于强迫聚焦的帖子,但没有什么意义。
我可以以编程方式构建视图,但是使用标准ListFraank和ArrayAdapter代码要容易得多。该列表将随着用户输入而增长,并且使用Android提供的基础架构更容易管理。
请看下面我的屏幕。屏幕的右侧是一个ListFraank,其中包含行的自定义布局。每行都包含一个EditText和一个提交文本的按钮。
以下是 ListFragment 的代码:
public class ItemDetailFragment extends ListFragment {
/**
* The fragment argument representing the item ID that this fragment
* represents.
*/
public static final String ARG_ITEM_ID = "item_id";
private static final String STATE_ACTIVATED_POSITION = "activated_position";
/**
* The dummy content this fragment is presenting.
*/
private static DetailArrayAdapter mAdapter;
/**
* Mandatory empty constructor for the fragment manager to instantiate the
* fragment (e.g. upon screen orientation changes).
*/
public ItemDetailFragment() {
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ArrayList<DetailData> items = new ArrayList<DetailData>();
items.add(new DetailData("1"));
mAdapter = new DetailArrayAdapter(getActivity(), R.layout.detail_layout, items);
// TODO: replace with a real list adapter.
setListAdapter(mAdapter);
}
class DetailArrayAdapter extends ArrayAdapter<DetailData> {
Context context = null;
int layoutResourceId;
ArrayList<DetailData> data;
public DetailArrayAdapter(Context context, int layoutResourceId, ArrayList<DetailData> data){
super(context, layoutResourceId, data);
this.context = context;
this.layoutResourceId = layoutResourceId;
this.data = data;
}
public View getView(int position, View convertView, ViewGroup parent){
View row = convertView;
LayoutInflater inflater = ((Activity)context).getLayoutInflater();
row = inflater.inflate(layoutResourceId, parent, false);
DetailData data = this.data.get(position);
EditText text = (EditText) row.findViewById(R.id.answer);
text.setText(data.detail_number + "You answer here ...");
Button submit_button = (Button) row.findViewById(R.id.answer_submit);
submit_button.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
int count = mAdapter.getCount();
int item_num = count + 1;
DetailData d = new DetailData(""+item_num);
mAdapter.add(d);
}
});
return row;
}
}
class DetailData {
public String detail_number;
public DetailData(String num){
this.detail_number = num;
}
}
}
以下是自定义行的布局代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<EditText
android:id="@+id/answer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="Your answer here..."
android:maxLines="1"
android:singleLine="true"/>
<Button
android:id="@+id/answer_submit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Go" />
</LinearLayout>
requestFocus()只对最后添加的edittext起作用,如果listfragment上有几个edittext,它不起作用
将以下行添加到ItemDetailFragment。创建EditText对象后,DetailArrayAdapter.getView()修复了该问题:
text.requestFocus();
我不明白这一点,但是在检索视图时让EditText请求获得焦点可以使屏幕上的EditText(以及其他内容)获得焦点。
我在我的文件中有这个代码,但是当在编辑文本中键入任何值并按下按钮时,相关的字符串不会打印。如何使其在按下按钮时,根据在编辑文本槽中输入的字符串显示特定文本?
我想将文本从软键盘输入到popupwindow中的Edittext小部件,但我遇到了一些问题。我的活动是一个游戏卡桌,并在上面启用一些动画。在游戏表中,有一些按钮。如果玩家点击某个按钮,将显示一个弹出窗口。问题是播放器无法在弹出窗口中输入文本到Edittext。我发现了一些类似的问题,最流行的建议是: 使用此设置,我可以正常输入Edittext。但是,这将阻止主UI线程并导致停止游戏表中的动画。我
我读了关于如何设置一个对象聚焦的问题,但是我似乎找不到任何一个答案来回答我想做的事情。 使用On Focus侦听器,我完成了以下操作: 我尝试了以下帖子中的建议: 我读了这篇文章,但使用这些建议似乎也不起作用:如何在创建和显示布局时设置视图的焦点? 我的目标是,当编辑文本焦点丢失时,如果给定的条目无效,我需要移回它。 此外,根据Bill Mote的建议,我还尝试了: **编辑**我甚至在reque
我有一个片段,其中包含一个ViewPager2的2个fragemnt。在第二个子片段中,我有一个回收器视图,其视图保持器包含 TextView 和 EditText。 在模拟器中,当我点击编辑视图时,软键盘一直关闭。 在真实设备(索尼xperia XA)中,软键盘没有关闭,但它总是关注第一个编辑文本,无论我是否在另一个编辑文本中单击 我曾尝试使用android:WindowsOfInputMode
当EditText具有焦点并且出现软键盘并按下任何键时,我正在尝试清理EditText。我正在使用OnFocus usChangeListener方法来检测EditText何时具有焦点,但我不知道如何在相同的方法中实现键盘事件。 有人能帮我吗?非常感谢。亲切的问候
我有一个编辑文本。我希望这个编辑文本始终保持焦点和可写性。我怎么能每次都不碰它呢?因为条形码扫描器机器将数据连续发送到此应用程序。 我尝试了很多方法。但它们都不起作用。我可以设置键盘是可见的,但光标不在编辑文本上。